bzoj1728[Usaco2006 Open]Two-Headed Cows 双头牛 二分+染色

本文介绍了如何解决USACO2006 Open中的双头牛问题,探讨了错误的网络流和二分思路,最终提出使用二分染色法来正确求解,并提及了二分法可能存在的问题以及正解——倍增算法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题意挺显然的就不说了。
这题我= =丢脸丢大了。。

一开始我觉得这题双头牛的模型有点像网络流,想了想反手给自己一耳光。。
然后觉得二分可做?但是怎么判断啊?
dp不可做啊,这个条件要用上的话时间会炸。
然后就蒙蔽了,想了半天没啥想法。
然后看到题解:二分+染色
第一反应:不可能啊怎么可能二分,我随手给你个反例:
4 6
1 B 3 A
1 A 3 A
2 B 3 A
2 A 3 A
4 B 3 A
4 A 3 A
1,2,4在一起,3单独一个。
然后标跑出来果然是错的,他跑出来3个。
然后我非常嗨森以为hack成功了结果被别人反手一个耳光。
这里写图片描述

这里写图片描述

这里写图片描述

可以,我脸很痛(╯‵□′)╯︵┻━┻
那这样就是道水题了。
我们直接二分,记录一下牛之间放在一起是要正向还是反向,通过连边记录,然后枚举区间左端点,二分右端点,判断的话只要dfs一下,染色的时候产生了矛盾就是不合法的。
————————————————————
UPD:二分并不是正解,是萎的。。。根据Claris大爷的说法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值