1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
解法范例

1 * 11080: Place the Guards ★★★☆☆ 題組:Problem Set Archive with Online Judge 題號:11080: Place the Guards 解題者:蘇才維 解題日期:2017年5月3日 題意:有一天,國王希望每個城市跟街道都能被守衛保護,每個守衛可以保護與他相連的城市跟街道,但一個街道不能被超一個守衛守護,因為守衛會互相打架,國王希望讓每個街道與城市都被守護但不希望守衛打架,請幫國王找出最少守衛的數量,如果無法避免打架,就輸出-1。都題目給N個城市(1=N=200),還有給E個街道(0=E=10000) * 解法範例: 1 0 2 3 4 Answer:-1 題意範例: Test case 4 node 2 street 0 - 1 0 - 1 1 - 2 2 - 3 0 - 4 3 - 4 2 - 3 5 node 5 street Case 1 answer Case 2 answer * 解法:可把城市視為一個節點,街道當成邊,題目可以轉化兩色圖,相同顏色不可以相同。 1. 把每個邊用一個vector存,然後,因為是雙向的,所以兩個邊的vector都要push。 2. 用BFS下去填顏色,把第一個填上色後push進去,之後如果與他相連的節點,是尚未上色的,就填上另一色,並把這個節點push進queue,如果要上色時,已被上了同個顏色就代表不可能完成,所以跳出,並輸出-1。 3. 做完上述的動作之後,會把所有相連在一起的上好顏色,最後,在比較是哪個顏色上色較少,選比較少的,但至少要有1個守衛,然後加到總守衛數。而不一定每個點都相鄰,所以是一個for迴圈去考慮是否全部已上顏色,直到考慮到最後一個節點。 * 解法範例: 0 2 1 3 Answer:1+1=2 * 討論:因為不一定所有的城市會相鄰,所以不相鄰的上色要重來,如果不把每次的顏色先算好加到守衛數去,直接用顏色下去看,有可能兩個不相鄰的圖,最少的顏色不相同,這樣相加起來,就不是最少守衛數了。 看顏色數:最少是3 先存到守衛數:1+1=2 0 2 1 3 4 4 * * * * * * 1 * * * * * *

文档评论(0)

magui + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8140007116000003

1亿VIP精品文档

相关文档