依然用vector 去構建圖 , 這個已經會了 應該去學一點別的了 不錯不錯 ,
這次用vector 構圖 超時了 , 如果以後做題的話 , 看到可能會超時的題 就應該先避開 看看別的再說
先付上 超時** 雖然超時了 不過答案應該是正確的
1一筆畫問題: 一 : 只有偶點 可以一筆畫並且可以以任意乙個點 作為起點/*認真體會 搜尋不是一種形式 而是一種思想 */2
/*判斷圖 是否連同 我想的乙個簡單粗暴的辦法就是 分別從每個點都走一次 看看有沒有 那一次 能把所有的點都走一遍的
*/3 #include4 #include5 #include
6using
namespace
std;
7 vectorv[1005];8
int sum,visited[1005],q1,q; //
用於判斷這個圖 是否走過
9void dfs(int
n)10
25 visited[v[n][i]]=0
;26 sum-=v[n][i];27}
28}29}
30int
main()
3143 q=(1+a)*a; //
偶數和奇數相乘 一定是偶數
44 q/=2;45
for(sum=n,q1=0,i=1;i<=n;i++) //
分別從 每乙個節點開始 搜尋 看看圖是否連同
4653
if(q1==1
)54 printf("
yes\n");
55else
56 printf("
no\n");
57}58return0;
59 }
二 : 只有兩個奇點 可以一筆畫出 但是必須分別 以 這兩個奇點 為起點 開始
三 : 奇數點超過兩個的時候 不能一筆畫
1就那一下下我要放棄了 , 然而掙扎了最後一次 成功了 兩天的努力沒有白費 , 以後寫變數的時候一定 考慮作用範圍 函式 條理清晰 不互相干擾/*一直糾結到現在 然而 還是沒有做出來 , 顯示的是 答案錯誤
*/2 #include3 #include4 #include
5using
namespace
std;
6 vectorv[1005];7
int n,m,mark[1005],visited[1005];8
void dfs(inti)9
19}20}
21int
main()
2241
int q=1,count=0;42
for(int i=1;i<=n;i++)
4349
if(flag&&(count==0||count==2)) //
5053
else
5457
}58 }
1下面開始用並查集做 (因為是第一次做 先上我學習的乾貨 )/*不放棄 , 多學習 , 多借鑑 ,堅持自己的方法 , 不成為別人 , 不迷失自己
*/2 #include3 #include4 #include
5using
namespace
std;
6 vectorv[1005];7
int n,m,mark[1005],visited[1005];8
void dfs(inti)9
17}18}
19int
main()
2039 dfs(1
);40
int q=1,count=0;41
for(int i=1;i<=n;i++)
4248
if(q&&(count==0||count==2)) //
4952
else
5356
}57 }
1/*已經做過了優化
*/2 #include3 #include4 #include5
int sum,father[1001],a[1001];6
int find(int x) //
做了時間上的優化 ,但是 在空間複雜度上比較高713
void merge(int x,int y) //
做了時間複雜度上的優化 讓並查集的 深度盡量 淺
1429}30
intmain()
3147
for(i=1;i<=p;i++)
53if(j==1&&(s==0||s==2
))54 printf("
yes\n");
55else
56 printf("
no\n");
57}58return0;
59 }
一筆畫問題
一筆畫問題是在6x6的棋盤上分布著若干點,從紅色起點開始依次不重複地經過每個白色點,已經經過的點可以跨越過去。程式採用深度搜尋,從紅色點開始分別往上 往下 往左和往右邁出第一步,然後沿著當前方向,分別探測左邊 前面和右邊的下一結點,標記已經經過的節點為空。探測到左邊有節點就左轉,然後直行到該節點 如...
一筆畫問題
描述 判斷乙個圖是否能夠用一筆畫下來.規定,所有的邊都只能畫一次,不能重複畫。輸入第一行只有乙個正整數n n 10 表示測試資料的組數。每組測試資料的第一行有兩個正整數p,q p 1000,q 2000 分別表示這個畫中有多少個頂點和多少條連線。點的編號從1到p 隨後的q行,每行有兩個正整數a,b ...
一筆畫問題
時間限制 3000 ms 記憶體限制 65535 kb 難度 4 描述 zyc從小就比較喜歡玩一些小遊戲,其中就包括畫一筆畫,他想請你幫他寫乙個程式,判斷乙個圖是否能夠用一筆畫下來。規定,所有的邊都只能畫一次,不能重複畫。輸入 第一行只有乙個正整數n n 10 表示測試資料的組數。每組測試資料的第一...