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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

nyist 一笔画问题

發(fā)布時(shí)間:2025/3/16 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 nyist 一笔画问题 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

題目描述

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

規(guī)定,所有的邊都只能畫一次,不能重復(fù)畫。

?

輸入

第一行只有一個(gè)正整數(shù)N(N<=10)表示測(cè)試數(shù)據(jù)的組數(shù)。
每組測(cè)試數(shù)據(jù)的第一行有兩個(gè)正整數(shù)P,Q(P<=1000,Q<=2000),分別表示這個(gè)畫中有多少個(gè)頂點(diǎn)和多少條連線。(點(diǎn)的編號(hào)從1到P)
隨后的Q行,每行有兩個(gè)正整數(shù)A,B(0<A,B<P),表示編號(hào)為A和B的兩點(diǎn)之間有連線。

輸出

如果存在符合條件的連線,則輸出"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

解題思路:

對(duì)于這個(gè)問(wèn)題來(lái)說(shuō),判斷兩個(gè)條件是否滿足就好了; (1)是否連通。 (2)奇點(diǎn)個(gè)數(shù)是0或者是2。圖上線段的端點(diǎn)可以分成二類,奇點(diǎn)和偶點(diǎn)。一個(gè)點(diǎn),以它為端點(diǎn)的線段數(shù)是奇數(shù)就稱為奇點(diǎn),線段數(shù)是偶數(shù)就稱為偶點(diǎn)。 于是就可以使用并查集來(lái)做。。

AC代碼:

#include<iostream> #include<cstdio> #include<cstring> int father[1001],a[1001]; int find(int x) {while(x!=father[x])x=father[x];return x; } void merge(int x,int y) {x=find(x);y=find(y);if(x!=y)father[x]=y; } int main() {int N,P,Q,A,B;int i,s,j; while(~scanf("%d",&N))while(N--){s=j=0;memset(a,0,sizeof(a));scanf("%d %d",&P,&Q);for(i=1;i<=P;i++)father[i]=i;while(Q--){scanf("%d %d",&A,&B);a[A]++;a[B]++;merge(A,B);}for(i=1;i<=P;i++){if(father[i]==i)j++;if(a[i]&1)s++;}if(j==1&&(s==0||s==2))printf("Yes\n");elseprintf("No\n");}return 0; }

與50位技術(shù)專家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的nyist 一笔画问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。