码迷,mamicode.com
首页 > 其他好文 > 详细

Codeforces 1209D. Cow and Snacks

时间:2019-09-16 12:15:44      阅读:100      评论:0      收藏:0      [点我收藏+]

标签:rate   ast   代码实现   targe   and   test   节点   代码   ORC   

传送门

考虑构建图论模型,每个客人看成边,菜看成点,那么每个客人连接他喜欢的两个菜

对于某个客人,如果他要开心,它连接的两点至少要有一个还未被选择

考虑一个显然的贪心,我们要尽量让每个客人只吃到一种菜

考虑构建一个生成树,每次从树上一个节点往外延伸,连向一个新的点,那之间的边就是新的一个客人

并且这样构建以后,除了第一个客人吃到了两种菜以外,其他客人都只吃到一种菜,显然是最优的

发现代码实现的时候生成树连边的顺序是没影响的,所以直接构建生成树森林,那么森林中的边数就是最多可以开心的客人

答案即为总人数减去最多开心的人数,并查集即可维护

由于我的代码过于丑陋并且可能是错的(虽然过了 $CF$ 的数据),思路也不是这个,所以请去看其他人的代码吧 $qwq$

比如这位不知名的神仙:birchtree    的代码 

Codeforces 1209D. Cow and Snacks

标签:rate   ast   代码实现   targe   and   test   节点   代码   ORC   

原文地址:https://www.cnblogs.com/LLTYYC/p/11526436.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!