日韩性视频-久久久蜜桃-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+贪心)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 色综合五月婷婷 | 91麻豆国产视频 | 亚洲 精品 综合 精品 自拍 | 中文字幕欧美日韩 | 91综合视频 | 国产破处av | 日韩成人av在线 | 国产成人无码精品 | 裸体裸乳被免费看视频 | 久久夜色av | 日韩成人午夜电影 | 天天摸天天插 | 成人黄色一级 | 婷婷五综合 | 麻豆影视免费观看 | 亚洲大色| 尤物在线免费观看 | 暖暖日本视频 | 国产五月 | 91极品视觉盛宴 | av大帝在线 | 大尺度在线观看 | 色呦呦呦呦 | 丰满大爆乳波霸奶 | 殴美黄色大片 | 伊人久久天堂 | 国产福利专区 | 97色网| 久久国产经典 | 黄色三级视频在线观看 | 国产裸体美女永久免费无遮挡 | 日本黄xxxxxxxxx100 | 三上悠亚久久 | 欧美日韩少妇 | 亚洲一区,二区 | 91精品国产福利在线观看 | 国产系列在线观看 | 在线播放一级片 | 黑人多p混交群体交乱 | 国产一区日韩一区 | 天堂成人国产精品一区 | 肉色超薄丝袜脚交一区二区 | 国产精品第二页 | 亚洲色图丝袜美腿 | 二级黄色录像 | a毛片在线观看 | 一区二区三区在线免费视频 | 女女互慰吃奶互揉调教捆绑 | 99免费国产 | 亚洲涩视频 | 91嫩草网| 国产91在线观看丝袜 | 国产伦精品一区二区三区在线观看 | 91国自产精品中文字幕亚洲 | 中文字幕一区二区三区四区欧美 | 日本美女视频 | 色片在线播放 | 8x8ⅹ8成人免费视频观看 | 欧美另类视频在线观看 | 亚洲综合在线播放 | 色视频导航 | 91偷拍网 | 亚洲v视频| 我要色综合天天 | 夜夜嗨视频 | 牛夜精品久久久久久久99黑人 | 一本色道久久综合亚洲精品按摩 | 免费播放毛片精品视频 | 91微拍| 亚洲午夜无码久久久久 | 国产精品久久久久久久av | 亚洲福利影院 | 免费公开在线视频 | 有码中文字幕 | 最近中文字幕在线视频 | 88xx成人永久免费观看 | 黄色的网站在线观看 | 国产草草草| 99爱精品 | 欧美自拍偷拍一区 | 深喉口爆一区二区三区 | 亚洲美女偷拍 | 国产一卡在线 | av午夜在线观看 | 日韩成人在线播放 | 精品国产91久久久久久久妲己 | 日韩免费视频一区二区视频在线观看 | 亚洲精品福利在线观看 | 成人午夜视频在线播放 | 男女插插插网站 | 国产大奶在线观看 | 国产麻豆剧传媒精品国产 | 91成人精品国产刺激国语对白 | 日韩一级黄色大片 | 六月久久 | 亚洲国产欧美一区 | 国产精品传媒在线 | 国产精品二区视频 | 欧美色图久久 |