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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

【HDU - 2444】The Accomodation of Students(二分图判断 + 匈牙利算法求最大匹配)

發布時間:2023/12/10 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【HDU - 2444】The Accomodation of Students(二分图判断 + 匈牙利算法求最大匹配) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題干:

There are a group of students. Some of them may know each other, while others don't. For example, A and B know each other, B and C know each other. But this may not imply that A and C know each other.?

Now you are given all pairs of students who know each other. Your task is to divide the students into two groups so that any two students in the same group don't know each other.If this goal can be achieved, then arrange them into double rooms. Remember, only paris appearing in the previous given set can live in the same room, which means only known students can live in the same room.?

Calculate the maximum number of pairs that can be arranged into these double rooms.?

Input

For each data set:?
The first line gives two integers, n and m(1<n<=200), indicating there are n students and m pairs of students who know each other. The next m lines give such pairs.?

Proceed to the end of file.?
?

Output

If these students cannot be divided into two groups, print "No". Otherwise, print the maximum number of pairs that can be arranged in those rooms.?

Sample Input

4 4 1 2 1 3 1 4 2 3 6 5 1 2 1 3 1 4 2 5 3 6

Sample Output

No 3

題目大意:

有n個學生。其中有些人相互認識,有些人相互之間不認識。現在有m對認識關系。問你能否把這n個人分成兩個組。一個組中沒有相互認識的人。如果不能做到的話,輸出NO。如果可以的話,把這些人分到一些房間中,只有相互認識的人能分到一個房間里。問你需要多少房間。
?

解題報告:

? ?這是判斷二分圖和二分圖匹配的裸題。

首先要判斷該圖是否為二分圖。當該圖為二分圖時,才能分為兩個組。當判斷為二分圖時,我們需要求出該二分圖的最大匹配數目。得出的結果除2就得出了需要房間數。(或者只對col==1的進行find匹配,這樣就不需要除以2了。)

二分圖的判定:
? ? 在判定一個圖是否為二分圖的時候只需要進行判斷圖中是否存在奇數長度的回路
? ? 常用的辦法是基于BFS的相鄰染色法 即對任意一個點進行BFS如果uv之間有一條邊 我們從u訪問到v 如果v未被染色 則v將被染成和u相對的染色(比如1和0)
? ?判斷出口:如果相鄰節點(u和v)是相同顏色 則存在奇回路

? ?還有個優化(但是貌似沒卵用),就是used數組不是bool的,設成int,然后每次就不需要置零used了,直接看是否等于i就可以了,相當于find中兩個參數find(i,i),其中bool find(int x,int id),看是否是id,就可以看出是否是

AC代碼:

#include<bits/stdc++.h> using namespace std; int nxt[205]; int col[205]; bool used[205]; int n,m; vector<int> vv[205]; bool bfs() {memset(col,-1,sizeof col);queue<int> q;q.push(1);col[1] = 1;while(!q.empty()) {int cur = q.front();q.pop();for(int i = 0; i<vv[cur].size(); i++) {int now = vv[cur][i];if(col[now] == -1) {col[now] = !col[cur];q.push(now);}else {if(col[now] == col[cur]) return 0;}}} return 1; } bool find(int x) {for(int i = 0; i<vv[x].size(); i++) {int now = vv[x][i];if(used[now] == 1) continue;used[now] = 1;if(nxt[now] == 0 || find(nxt[now])) {nxt[now] = x;return 1;}}return 0 ; } int main() {int u,v,ans;while(~scanf("%d%d",&n,&m)) {memset(nxt,0,sizeof nxt);for(int i = 0; i<=200; i++) vv[i].clear();for(int i = 1; i<=m; i++) {scanf("%d%d",&u,&v);vv[u].push_back(v);vv[v].push_back(u);}if(!bfs()) {puts("No");continue;}ans = 0;for(int i = 1; i<=n; i++) {memset(used,0,sizeof used);if(find(i)) ans++;}printf("%d\n",ans/2);}return 0; }

總結:

? ?1WA了,因為忘記了清空vv和nxt數組。

總結

以上是生活随笔為你收集整理的【HDU - 2444】The Accomodation of Students(二分图判断 + 匈牙利算法求最大匹配)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 91精品在线看 | 小视频在线看 | 欧美成人免费 | 国产香蕉尹人视频在线 | 黄色一极视频 | 手机看片日韩福利 | 久久精品成人一区二区三区蜜臀 | 日本狠狠爱 | 欧美日韩国产二区 | 欧美色图综合网 | 日本四虎影院 | 伊人精品在线视频 | 久久伊人av | 男人的天堂久久 | 九九久久99 | 91麻豆产精品久久久久久 | 先锋av网| 国内自拍视频在线播放 | 一区二区在线视频 | 综合五月婷 | 花房姑娘免费观看全集 | 久草精品在线观看 | 黄色a在线 | 激情婷婷综合网 | 草草网址| 流白浆视频 | 亚洲黄色片子 | 久久99久久99精品蜜柚传媒 | 黄色网址在线播放 | 国外成人免费视频 | 日本调教电影 | a∨鲁丝一区鲁丝二区鲁丝三区 | 国产精品天天看 | 精品免费在线视频 | 国产精品乱码久久久久 | 香蕉视频色版 | 欧美色偷偷 | 国产精品久久久久久久蜜臀 | 亚洲欧美精品午睡沙发 | 97超碰97 | 日人视频| 国色天香av | 久久无码专区国产精品s | 成人做爰9片免费视频 | 人人艹视频 | 天天av网 | 国产精品一区二区久久 | 欧美国产日韩在线观看 | 亚洲av永久无码精品三区在线 | 婷婷爱五月天 | 三级网站在线 | 日韩和欧美一区二区 | 精品一区二区三区四区五区 | 亚洲av成人一区二区 | 少妇一级淫片免费看 | 亚洲免费三区 | 日韩电影一区二区三区 | 日日射天天操 | 亚洲乱码视频 | 美女色诱男人激情视频 | 免费黄色小网站 | 狠狠躁18三区二区一区传媒剧情 | 99在线观看免费 | 中文在线字幕免费观看电 | 欧美8888| 99嫩草 | 性欧美www | 日日人人| 主播福利在线 | 大肉大捧一进一出视频 | 国产另类专区 | 中文天堂资源在线 | 日韩av在线看免费观看 | 贵族女沦为官妓h呻吟 | 欧美大片91 | 日日射影院 | 四虎影酷 | 91大片免费看 | 亚洲蜜桃av一区二区 | 国产第一区第二区 | 蜜臀久久99精品久久久久宅男 | 台湾swag在线观看 | 99国产揄拍国产精品 | 欧美a级在线 | 日本高清免费不卡视频 | 快播色图| 亚洲激情在线观看视频 | 91嫩草精品 | 有码在线视频 | 国产一区二区波多野结衣 | 欧美亚洲另类在线 | 青青伊人av | 亚洲最大激情网 | 国产欧美日韩三级 | 看全黄大色黄大片 | 亚洲国产成人一区二区 | 99er热精品视频| 日韩精品色哟哟 | 国产免费一级 |