CF round167 Div1 C Dima and Horses

来源:互联网 发布:工信部证书有用吗 知乎 编辑:程序博客网 时间:2024/06/06 15:44

CF round167 Div1 C Dima and Horses

题意:给出n匹马,他们之间,有m个矛盾关系,一匹马最多跟三匹马之间会有矛盾,然后把这n匹马放到两个房间,要求没个房间里,每一匹马最多跟另外一匹马有矛盾,该如何分配这n匹马。

解题思路:每次把矛盾关系大于等于2的加入到队列当中,然后取出队列的元素,将其标号取反,再去更新与它连接的节点。为什么可以这样做呢?因为如果一匹马跟两匹以上有矛盾,而一匹马最多会跟三匹马有矛盾,那么当这匹马的标号取反后,矛盾关系会减少1,或2,或3。反正就是减少了,那么一直减少下去,最终肯定会达到符合要求的。这里关键点是,一匹马最多会跟三匹马有矛盾关系,而在一个房间里,一匹马最多只跟另外一匹马有矛盾关系是可以被接纳的,如果这种情况不能被接纳,那么将有可能会一直循环下去。

代码:

原创粉丝点击