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

codechef BIBOARD

时间:2021-02-09 12:22:26      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:否则   sdoi   inf   假设   lin   math   chef   span   它的   

一个和标算不同的方法。
考虑二元关系网络流(最小割)。
根据sdoi墙上的句子的经验,把每个网格上的点拆成两个,代表黑/白点。
给当前位置\((x,y)\)新建两个点\(a,b\)
a归到s->\((x,y)\)选白色
a归到t->\((x,y)\)选黑色
b归到s->\((x,y)\)选黑色
b归到t->\((x,y)\)选白色
考虑a->b连inf,这样子可以保证a,b不能同时选。
s->a连接流量为\(a\)格子的代价,b->t连接流量为\(b\)格子代价
如果限制格子\((x,y)\)为黑色,则\(s\to a\)不连边。
如果限制格子\((x,y)\)为白色,则\(b\to t\)不连边。
考虑矩形的限制。
把每个矩形新建两个点\(c,d\)
如果我们为一个格子\((x,y)\)赋值。
假设当前格子是白色,则包含它的黑矩形都不能选。
假设当前格子是黑色,则包含它的白矩形都不能选。
s->c,d->t连代价的边。
根据前面的经验,\((x,y)\)对应的点\(a,b\),d->b连inf,a->c连inf。
发现这样子跑出来的是“最小要减少的代价”
设变量\(ans\),初始为\(0\)
考虑每个格子,如果它必须是黑色,则ans+=它为黑色时的代价。
如果它必须是白色,则ans+=它为白色时的代价。
否则ans+=它为白色时的代价+它为黑色时的代价
ans-最小割就是答案。

codechef BIBOARD

标签:否则   sdoi   inf   假设   lin   math   chef   span   它的   

原文地址:https://www.cnblogs.com/ctmlpfs/p/14390907.html

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