題意是granny是否能從家裏出發,走完每一個點僅一次然後回到家,也就是找是否存在漢密爾頓迴路。數據規模小,我的方法是用二維數組保存連接點,然後DFS搜索。
#include<iostream> using namespace std; const int Max=10; bool mat[Max][Max]; int n,cnt,num=1; bool flag,vis[Max]; void DFS(int i) { if(cnt==n) //若訪問完全部的點且該點與0點連通,則返回TRUE { if(mat[i][0]==true) { flag=true; return; } } int j; for(j=1;j<=n;j++) { if(mat[i][j]==true && vis[j]==false) //若i點與j點連通且j點未被訪問,則進入j點進行下一個搜索 { vis[j]=true; cnt++; DFS(j); vis[j]=false; //回溯 cnt--; } } } bool run() { scanf("%d",&n); getchar(); if(n==0) return false; int i,j; for(i=0;i<=n;i++) //初始化 { for(j=0;j<=n;j++) mat[i][j]=false; } for(i=0;i<=n;i++) vis[i]=false; for(i=1;i<=n;i++) { char pos; while(true) { scanf("%c",&pos); if(pos=='/n') break; //處理到回車爲止 if(pos>='0' && pos<='9') { mat[i][pos-'0']=true; //表示雙向連通 mat[pos-'0'][i]=true; } } } cnt=0; //初始化 flag=false; vis[0]=true; DFS(0); //搜索 printf("Case %d: ",num++); if(flag==true) printf("Granny can make the circuit./n"); else printf("Granny can not make the circuit./n"); return true; } int main() { while(run()); return 0; }
-> 在c語言中是什麼意思?檢舉->在C語言中稱爲間接引用運算符,是二目運算符,優先級同成員運算符“.”。 用法: p->a,其中p是指向一個結構體的指針,a是這個結構體類型的一個成員。表達式p->a引用了指針p指向的結構體的成員a。 例
cvCloneImage()每次使用時編譯器會分配新的內存空間,不會覆蓋以前的內容,所以如果在循環中使用內存會迅速減小,每次用完都需要用cvRelease來釋放。解決方法是使用cvCopy函數代替。cvCopy(pSrcImg,pImg,
關於UCS-2編碼就不多說了,Google一下就大把大把的了 直接上代碼 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> .386 .model flat , stdcall option
1)、類型比較和轉換問題 short和int類型之間直接比較或轉換都會出現內存錯誤;2)、判斷文件是否結束時,可能存在回車換行文件並沒真正介紹而內容已經結束了,需要用while (!feof(fp_signal_sort) && (fsc
養生需知:世上最健康的作息時間 7:30:起牀。英國威斯敏斯特大學的研究人員發現,那些在早上5:22―7:21 分起牀的人,其血液中有一種能引起心臟病的物質含量較高,因此,在7:21之後起牀對身體健康更加有益。 7:30―8:00:
hutchin 發表於 2006/10/31, 4:34 PM. 學習 用正則表達式突出顯示字符串中查詢到的單詞的函數<%'''''Function hs(aa,bb) ''建立函數hs,兩值:aa爲內容,bb爲需要查詢的字符Dim re
id="I7" marginwidth="0" marginheight="0" src="http://www.bookeba.cn/securi
1. Java Javasoft: http://www.javasoft.com Sun: www.sun.com Developer.com: http://java.developer.com Tutorial: http://
1. Linux下面 預防與檢測:使用smartmontools工具,用來控制SMART 檢測: 1)用badblocks工具檢測壞塊 #sudo badblock -s -v -c 64 /dev/sda 1000 10 (1000是結
配置: 1.下載jdk-6u7-windows-i586-p.exe並安裝(E:/Java/jdk1.6.0_07) 2.配置環境變量 JAVA_HOME E:/Java/jdk1.6.0_07 PATH %J
homemdbdistinguishednamecountrycodecnlastlogoffmailnicknamedscorepropagationdatamsexchhomeservernamemsexchmailboxsecuri
陷阱分發: 陷阱(trap)指的是異常或中斷髮生時處理器撲捉到一個執行線程,並將控制權轉移到操作系統某一固定地址處。windows中控制權轉移給一個 陷阱處理器(trap handler),與某個異常或中斷相關聯的函數。 中斷:是一
從開始做這道題開始,有人呢就在跟我一個又一個電話的吵架,間或短信QQ 頭昏腦脹的情況下,實在懶得化簡中間步驟,就把每個連線的狀態都單獨標出來然後一次輸出。 這道題實在是瑣碎的不得了,不過想法還是實現的比較順利,從第一次提交開始就是P
沒啥內容,字符串題,題目稍微表達的亂了一點,看懂了就很容易了 好久沒做了,結果忘記註釋掉方便自己的輸入重定向,不停的WA,很崩潰,還好最後發現了,呼呼 //1998812 2009-09-19 17:06:01 Accepted 1
簡單題,純計算,找出一個距離最小值 //Accepted 1067 C++ 00:00.00 396K #include<stdio.h> #include<math.h> int target[16][3]; int now[3]