uva10572 black&white 插头dp

这篇博客讲述了作者解决一道名为UVA10572的广义路径问题的经历。作者采用动态规划(DP)策略,使用两条轮廓线记录格子的联通状态和染色情况。在讨论四种可能的插头位置(左、上、左上、当前)时,注意到特殊情况:轮廓线上方已存在单独的联通块。在调试过程中,作者发现了由于状态标号错误导致的问题,并修正后成功通过了所有样例。
摘要由CSDN通过智能技术生成

终于切了第一道广义路径的题目,也确实感到比较复杂,最小表示法的优势也可以体现出来,因为这题,昨天的澡到现在才洗完,按照小hh的思路,用一条轮廓线记录联通状态,注意这里的轮廓线已经不是m+1啦,因为我们不需要左插头了,每个格子可以插至多4个插头,另外一条轮廓线表示当前的染色状态,这个要m+1因为还要保留左上格子的颜色,然后我们对于4个格子的颜色讨论,左,上,左上,当前,一共16中情况,8种是对称的,同时要注意一种情况,已经轮廓线上部已经有一个单独的联通块。说说我debug这么久是为什么吧,先是cs打成cl,问题是前4个sample尽然过啦,后面的sample爆了,后来发现改之,然后就开始纠结最后一个sample,对不上,一直到今天早上,我拿网上代码对拍,发现m=8的时候结果都不对,其他都是对的,查看代码数遍,直到刚刚,突然意识到,我的状态爆了,我最小表示法用二进制3位表示,范围0~7,我sb的从1开始标号,那么m=8时,12345678最大的标号就是这样,出现了8,坑爹了,改之,果然sample过了,提交1y,刷进了第一版

Ranking Submission Run Time Language Submission Dat
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值