[SMOJ2207]方格取数问题

通过将方格取数问题转化为二分图的最大点权独立集问题,然后进一步转换为最小割问题,使用最大流算法求解。棋盘黑白染色,形成带点权的二分图,源点s到黑点边容量为格子数,黑白点间边容量无穷大,白点到汇点t边容量为格子数。最小割即为放弃的数之和,答案为所有数字之和减去最小割。

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

这题的思想跟“太空飞行计划”很类似。

首先把棋盘黑白染色,使所有相邻格子的颜色相反,此时需要改变我们之前把“合法的东西连边”的想法,变成“有冲突的连边”。也就是说,从每个黑色格子向其四周会与其冲突的白色格子之间连边(边界的特殊情况除外)。这样就得到了一个带点权的二分图。同样,别忘了源点和汇点。样例如图:

这样,我们的任务就变成了从二分图中选取一些点,使得被选择的任意两点间没有边相连。这就是二分图最大点权独立集问题。

带点权的网络流问题我们暂时不会解决,但可以转化成边权。令 s 到黑点的边容量为对应格子上的数,黑白点之间边容量为无穷大,白色点到

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值