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

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

生活随笔

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

编程问答

浙大JAVA实验题12_2019浙大计算机考研机试模拟赛(2)——概念专题

發(fā)布時(shí)間:2023/12/2 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 浙大JAVA实验题12_2019浙大计算机考研机试模拟赛(2)——概念专题 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

題目鏈接? ?引用自晴神OJ

A - 邊覆蓋

B - 極大獨(dú)立集

C - 穩(wěn)定婚姻問(wèn)題

D - 笛卡爾樹(shù)

沒(méi)趕得上全程的比賽,就做了兩道,后面兩道以后有時(shí)間再補(bǔ)。兩道都是概念題,比較基礎(chǔ)~ 以下是題解

A -?邊覆蓋

Case Time Limit:?200?MS (Others) /?400?MS (Java) ??????Case Memory Limit:?256?MB (Others) /?512?MB (Java)

Accepted:

199??????Total Submission:

362

Problem Description

對(duì)一個(gè)給定的無(wú)向圖G(V,E),邊集E'是E的子集。如果V中的所有頂點(diǎn)都在E'中出現(xiàn)過(guò),那么稱邊集E'是圖G的一個(gè)邊覆蓋(Edge Cover)。

(以上定義引自https://en.wikipedia.org/wiki/Edge_cover)

根據(jù)上面的定義,請(qǐng)判斷一些給定的邊集是否是給定的無(wú)向圖的邊覆蓋。

Input

每個(gè)輸入文件一組數(shù)據(jù)。

第一行為兩個(gè)整數(shù)N、M(1<=N<=500, 1<=M<=N*(N-1)/2),分別表示無(wú)向圖的頂點(diǎn)數(shù)和邊數(shù)。假設(shè)圖上的頂點(diǎn)編號(hào)為從1到N。

接下來(lái)M行,每行兩個(gè)正整數(shù)u、v(1<=u,v<=N, u!=v),分別表示一條無(wú)向邊的兩個(gè)端點(diǎn)。數(shù)據(jù)保證沒(méi)有重邊。

接著一個(gè)正整數(shù)K(K<=10),表示查詢的個(gè)數(shù)。

然后是K個(gè)查詢,每個(gè)查詢第一行為一個(gè)正整數(shù)L(L<=M),表示欲查詢邊集E'中的邊數(shù);接下來(lái)L行,每行兩個(gè)整數(shù),表示邊集E'中的一條邊。數(shù)據(jù)保證E'一定是E的子集。

Output

每個(gè)查詢一行,如果欲查詢邊集E'不是圖G的邊覆蓋,那么輸出No;否則輸出Yes。

Sample Input

6 7

1 2

1 3

2 3

2 4

3 5

4 5

4 6

3

3

1 2

3 5

4 6

4

1 2

2 3

4 5

4 6

3

1 2

2 3

4 6

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

Sample Output

Yes

Yes

No

Author

Shoutmon

Source

19浙大考研機(jī)試模擬賽

分析:題目是中文題,意思是輸入一堆邊,看這些邊是否將所有頂點(diǎn)都覆蓋到了。只需要在每次查詢輸入后,將邊所連的頂點(diǎn)置為已訪問(wèn),再遍歷一次訪問(wèn)數(shù)組即可。

#include #include#include#include#include#include#include

using namespacestd;const int maxn=510;intG[maxn][maxn];boolvis[maxn];intmain()

{//freopen("1.txt","r",stdin);

intn,m;

cin>>n>>m;intu,v;for(int i=0;i

scanf("%d%d",&u,&v);

G[u][v]=1;

G[v][u]=1;

}intk;

cin>>k;while(k--){intL;

scanf("%d",&L);

memset(vis,0,sizeof(vis));for(int i=0;i

scanf("%d%d",&u,&v);

vis[u]=true;

vis[v]=true;

}intj;for(j=1;j<=n;j++){if(vis[j]==false){

printf("No\n");break;

}

}if(j==n+1) printf("Yes\n");

}return 0;

}

View Code

B -?極大獨(dú)立集

Case Time Limit:?100?MS (Others) /?200?MS (Java) ??????Case Memory Limit:?256?MB (Others) /?512?MB (Java)

Accepted:

140??????Total Submission:

303

Problem Description

對(duì)一個(gè)給定的無(wú)向圖G(V,E),點(diǎn)集V'是V的子集。如果V'中的任意兩個(gè)頂點(diǎn)之間都沒(méi)有邊,就稱點(diǎn)集V'是圖G的獨(dú)立集(Independent Set)。在此基礎(chǔ)上,如果往V'中添加任何一個(gè)在V中但不在V'中的頂點(diǎn),都會(huì)使V'變成非獨(dú)立集,那么就稱V'是圖G的極大獨(dú)立集(Maximal Independent Set)。

(以上定義引自https://en.wikipedia.org/wiki/Independent_set_(graph_theory))

根據(jù)上面的定義,請(qǐng)判斷一些給定的點(diǎn)集是否是給定的無(wú)向圖的極大獨(dú)立集。

Input

每個(gè)輸入文件一組數(shù)據(jù)。

第一行為兩個(gè)整數(shù)N、M(1<=N<=500, 1<=M<=N*(N-1)/2),分別表示無(wú)向圖的頂點(diǎn)數(shù)和邊數(shù)。假設(shè)圖上的頂點(diǎn)編號(hào)為從1到N。

接下來(lái)M行,每行兩個(gè)正整數(shù)u、v(1<=u,v<=N, u!=v),分別表示一條無(wú)向邊的兩個(gè)端點(diǎn)。數(shù)據(jù)保證沒(méi)有重邊。

接著一個(gè)正整數(shù)K(K<=10),表示查詢的個(gè)數(shù)。

然后是K個(gè)查詢,每個(gè)查詢第一行為一個(gè)正整數(shù)L(L<=N),表示欲查詢點(diǎn)集V'的頂點(diǎn)個(gè)數(shù);第二行為用空格隔開(kāi)的L個(gè)正整數(shù),表示V'中的頂點(diǎn)編號(hào)。數(shù)據(jù)保證V'一定是V的子集。

Output

每個(gè)查詢一行,如果欲查詢的點(diǎn)集不是圖G的獨(dú)立集,那么輸出Not an Independent Set;如果欲查詢的點(diǎn)集是圖G的獨(dú)立集但不是極大獨(dú)立集,那么輸出Not Maximal;如果欲查詢的點(diǎn)集是圖G的極大獨(dú)立集,輸出Yes。

Sample Input

6 5

1 2

2 3

2 4

4 5

4 6

3

2

1 4

3

1 3 4

3

1 2 4

Sample Output

Not Maximal

Yes

Not an Independent Set

Author

Shoutmon

Source

19浙大考研機(jī)試模擬賽

分析:判斷是否是極大獨(dú)立集,根據(jù)定義一個(gè)獨(dú)立集是指任意兩個(gè)頂點(diǎn)之間都沒(méi)有邊的點(diǎn)集,所謂最大就是加入任意一個(gè)頂點(diǎn)都會(huì)“破壞”獨(dú)立集。先判斷是否是獨(dú)立集,然后再枚舉每一個(gè)未在點(diǎn)集中的點(diǎn),判斷是否在加入后會(huì)“破壞”獨(dú)立集。注意到樣例中已經(jīng)給出了坑點(diǎn),即1和4僅是獨(dú)立集不是最大獨(dú)立集,因?yàn)榧尤?后仍然是一個(gè)獨(dú)立集,知道這點(diǎn)以后就可以輕松解決了。

#include #include#include#include#include#include#include

using namespacestd;const int maxn=510;int G[maxn][maxn]={0};boolvis[maxn];intmain()

{//freopen("1.txt","r",stdin);

intn,m;

cin>>n>>m;intu,v;for(int i=0;i

scanf("%d%d",&u,&v);

G[u][v]=G[v][u]=1;

}intK;

scanf("%d",&K);

loop:while(K--){intL;

scanf("%d",&L);

vectorvec;inttemp;

memset(vis,0,sizeof(vis));for(int i=0;i

scanf("%d",&temp);

vec.push_back(temp);

vis[temp]=true;

}for(int i=0;i

cout<

}

}

}bool flag=false;for(int i=1;i<=n;i++){if(vis[i]==false){intj;for(j=0;j

}

}if(j==vec.size()){

cout<

flag=true;gotoloop;

}

}

}if(!flag) cout<

}return 0;

}

View Code

總結(jié)

以上是生活随笔為你收集整理的浙大JAVA实验题12_2019浙大计算机考研机试模拟赛(2)——概念专题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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