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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Codeforces Round #167 (Div. 1) C. Dima and Horses(BFS+贪心)

發布時間:2024/10/12 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Codeforces Round #167 (Div. 1) C. Dima and Horses(BFS+贪心) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

題目大意

?

有 n(1≤n≤3*105) 匹馬,每條馬都有幾個敵人(不超過 3 個),現在要求把這些馬分成兩部分(允許一部分中沒有一條馬),使得對于每條馬,和它在同一部分中的敵人的數量不超過1個

給出了所有的敵對關系,求一個劃分的方案。如果不存在劃分方案,輸出-1

?

做法分析

?

首先,觀察下為什么題目給的數據范圍這么奇葩:

每條馬的敵人的數量不超過 3 個

這有什么用呢?想了很久,畫了好幾個圖,最終確定,這樣的條件下,一定是存在一個劃分方案,使得每部分中,每條馬的敵人數量不超過 1 個。

可以考慮 4 個點的完全圖,每個點的度是 3,對應了 3 個敵人,我們完全可以找出一種分配的方案使得這個圖的點分成兩個點集,那么,對于其余的情況,肯定也是能夠找出一種解的,因為他們的關系比 4 個點的完全圖的關系更加的簡單

也就是說,輸出 -1 的情況是不存在的

接下來就考慮怎么構造出一種分配的方案了

?

實在是想不出有什么其他的做法了,干脆貪心的找找,類似于 SPFA 的 BFS:

? ? ? ? ①. 先假設所有的馬都在同一個部分中,把所有不合格的馬(有超過 1 個敵人的)入隊

? ? ? ? ②. BFS 的過程中,先把當前馬移動到另一個部分中,然后再統計它的敵人中,哪些馬變得不合法了,把不合法的加入到隊列中

這樣不斷的 BFS,肯定能夠找到一種分配方案,但是具體的時間復雜度不知道怎么計算的,迷迷糊糊的就過了......

?

參考代碼

?

1 #include <iostream> 2 #include <cstring> 3 #include <cstdio> 4 #include <queue> 5 6 using namespace std; 7 8 const int N=300006; 9 10 int arc[N][10], n, m, ans[N]; 11 queue <int> q; 12 13 bool Ok(int u) 14 { 15 int cnt=0; 16 for(int i=1; i<=arc[u][0]; i++) 17 { 18 int v=arc[u][i]; 19 if(ans[u]==ans[v]) cnt++; 20 } 21 return cnt<2; 22 } 23 24 void BFS() 25 { 26 while(!q.empty()) q.pop(); 27 for(int i=1; i<=n; i++) 28 if(!Ok(i)) q.push(i); 29 while(!q.empty()) 30 { 31 int u=q.front(); 32 q.pop(); 33 if(Ok(u)) continue; 34 ans[u]^=1; 35 for(int i=1; i<=arc[u][0]; i++) 36 if(!Ok(arc[u][i])) q.push(arc[u][i]); 37 } 38 } 39 40 int main() 41 { 42 scanf("%d%d", &n, &m); 43 for(int i=1; i<=n; i++) ans[i]=0, arc[i][0]=0; 44 for(int i=0, a, b; i<m; i++) 45 { 46 scanf("%d%d", &a, &b); 47 arc[a][++arc[a][0]]=b; 48 arc[b][++arc[b][0]]=a; 49 } 50 BFS(); 51 for(int i=1; i<=n; i++) printf("%d", ans[i]); 52 printf("\n"); 53 return 0; 54 } C. Dima and Horses

?

題目鏈接 & AC通道

?

Codeforces Round #167 (Div. 1) C. Dima and Horses

?

?

?

轉載于:https://www.cnblogs.com/zhj5chengfeng/archive/2013/05/30/3108783.html

總結

以上是生活随笔為你收集整理的Codeforces Round #167 (Div. 1) C. Dima and Horses(BFS+贪心)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: av网站免费在线观看 | 青青在线视频观看 | 日韩一区二区三区在线观看 | 久久精品午夜福利 | 台湾av在线播放 | 国产日韩欧美视频在线 | 高h喷汁呻吟3p | 欧美精品在线视频 | 亚洲伦理在线观看 | 日韩高清二区 | 在线五月天 | 女性喷水视频 | 免费看国产曰批40分钟 | 免费在线国产 | 欧美大片高清 | 伊人成人在线观看 | 91视频在线免费看 | 青青草国产一区 | 伊人www22综合色 | 337p粉嫩大胆色噜噜噜 | 黄色动漫在线免费观看 | 成人精品国产 | 国产欧美一区二 | 国产一区二区在线免费 | 国产亚洲欧美日韩精品一区二区三区 | 亚洲国产一区二区三区在线观看 | 青青青网 | 影音先锋波多野结衣 | 91沈先生在线 | 视频在线看 | 丝袜在线视频 | 欧美精品日韩在线 | 久久综合91 | 理论片大全免费理伦片 | 国产做受入口竹菊 | 国产亚洲成av人在线观看导航 | 日韩欧美亚洲天堂 | 自拍偷拍第一页 | 变态另类一区二区 | 二级毛片| 欧美一区二区激情 | 国产精品一区在线观看你懂的 | 中文字幕在线视频一区二区三区 | 国产激情精品一区二区三区 | av剧情在线| 国产精品免费久久 | 天堂影院一区二区 | 操小妹影院 | 丰满的女人性猛交 | 亚洲国产视频网站 | 草草影院在线免费观看 | 视频久久精品 | 日本道中文字幕 | 91福利视频网 | 激情五月色综合国产精品 | 国产精品伦子伦免费视频 | 国产黄色一级网站 | 亚洲欧美视频一区二区 | 国产成人精品网站 | 亚州精品国产精品乱码不99按摩 | 99精品国产成人一区二区 | 日韩中文字幕在线不卡 | 成人看片网 | 亚洲石原莉奈一区二区在线观看 | 精品人妻一区二区三区免费 | 91欧美视频 | av在线播放网址 | 美女扒开屁股让男人桶 | 日本人极品人妖高潮 | 免费看91视频 | 久草资源站 | 色综合视频在线 | 永久av网站| 日韩小视频在线 | 影音先锋男人资源网站 | www.色99| 精品国产一区二区三区四区 | 高清日韩欧美 | 中文字幕日本一区 | 久久久久久久久久久福利 | 欧美裸体精品 | 久久撸视频 | 欧美大白屁股 | 久久久久久国产 | 日本欧美国产一区二区三区 | 999综合网 | 亚洲一级大片 | 精品视频www | 青青青国产视频 | 在线观看麻豆av | 国产精品综合久久久久久 | 久久亚洲av成人无码国产电影 | www.婷婷色| 香蕉影音| 东北毛片 | 超碰在线97观看 | 国内外成人在线视频 | 中文在线字幕免费观看 | 99er视频 |