日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

NYOJ-42 一笔画问题

發布時間:2024/4/14 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 NYOJ-42 一笔画问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

一筆畫問題

時間限制:3000 ms ?|? 內存限制:65535 KB 難度:4 描述

zyc從小就比較喜歡玩一些小游戲,其中就包括畫一筆畫,他想請你幫他寫一個程序,判斷一個圖是否能夠用一筆畫下來。

規定,所有的邊都只能畫一次,不能重復畫。

?

輸入
第一行只有一個正整數N(N<=10)表示測試數據的組數。
每組測試數據的第一行有兩個正整數P,Q(P<=1000,Q<=2000),分別表示這個畫中有多少個頂點和多少條連線。(點的編號從1到P)
隨后的Q行,每行有兩個正整數A,B(0<A,B<P),表示編號為A和B的兩點之間有連線。
輸出
如果存在符合條件的連線,則輸出"Yes",
如果不存在符合條件的連線,輸出"No"。
樣例輸入
2 4 3 1 2 1 3 1 4 4 5 1 2 2 3 1 3 1 4 3 4
樣例輸出
No Yes

#include<stdio.h>
#include<string.h>
int p[1005],visit[1005],G[1005][1005];
int point,line;

void DFS(int i)
{
?int v=i;
?visit[i]=1;
?for(v=0;v<point;++v)
?{
??if(v!=i&&G[i][v]&&!visit[v])
???DFS(v);
?}
}

int main()
{
?int n,i,x,y,count,flag;
?scanf("%d",&n);
?while(n--)
?{
??count=0;
??flag=1;
??scanf("%d%d",&point,&line);
??memset(p,0,sizeof(p));//統計各節點的度
??memset(visit,0,sizeof(visit));//訪問標記數組
??memset(G,0,sizeof(G));//鄰接矩陣?
??for(i=0;i<line;++i)
??{
???scanf("%d%d",&x,&y);
???G[x-1][y-1]=G[y-1][x-1]=1;
???++p[x-1];
???++p[y-1];
??}
??DFS(0);//判斷是否連通
??for(i=0;i<point;++i)
??{
???G[i][i]=1;
???if(visit[i]==0)
????flag=0;
???if(p[i]&1)
????++count;
??}
??if(flag)//說明是連通圖
??{
???if(count==2||count==0)
????printf("Yes\n");
???else
????printf("No\n");
??}
??else
???printf("No\n");
?}
?return 0;
}

轉載于:https://www.cnblogs.com/dongsheng/archive/2012/05/30/2527029.html

超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生

總結

以上是生活随笔為你收集整理的NYOJ-42 一笔画问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。