2017-Personal3-team2
从 Trac 迁移的文章
这是从旧校内 Wiki 迁移的文章,可能存在一些样式问题,您可以向 memset0 反馈。
原文章内容如下:
* B.Yu-Gi-Oh!
* 调整怪兽和非调整怪兽当做左右两边的点,然后对于每一只同调怪兽p,假设合成其的调整怪兽x和非调整怪兽y,则连x -> y, flow=1,cost=atk[x]+atk[y]-atk[p]的边,具体实现的时候一定要保证处理边和建边都要是O(n^2^)级别的(不然会tle),可以开一个二维数组记录x和y能达成的最高攻击力同调怪物,然后跑最小费用可行流,用Σatk - 费用就是答案了。
* D. Asa's Chess Problem
* 源点向行点和列点连上下界均为黑点个数的边,行点和列点向汇点连上下界为要求黑点个数的边,对于每一个pair,如果颜色不同,行相同就列a向列b连流量为1费用为1的边,列相同就行a向行b连流量为1费用为1的边,跑上下界费用流即可。
* L. The King’s Problem
* tarjan把点缩了变成DAG,然后用匈牙利跑最小路径覆盖就可以了。(注意:匈牙利跑最小路径覆盖只限于DAG,原来任意一条边x->y直接当做左边点x向右边点y连边,跑出来最大匹配,然后点数-最大匹配就是最小路径覆盖)。
- B.Yu-Gi-Oh!
- 调整怪兽和非调整怪兽当做左右两边的点,然后对于每一只同调怪兽p,假设合成其的调整怪兽x和非调整怪兽y,则连x -> y, flow=1,cost=atk[x]+atk[y]-atk[p]的边,具体实现的时候一定要保证处理边和建边都要是O(n2)级别的(不然会tle),可以开一个二维数组记录x和y能达成的最高攻击力同调怪物,然后跑最小费用可行流,用Σatk - 费用就是答案了。
- D. Asa's Chess Problem
- 源点向行点和列点连上下界均为黑点个数的边,行点和列点向汇点连上下界为要求黑点个数的边,对于每一个pair,如果颜色不同,行相同就列a向列b连流量为1费用为1的边,列相同就行a向行b连流量为1费用为1的边,跑上下界费用流即可。
- L. The King’s Problem
- tarjan把点缩了变成DAG,然后用匈牙利跑最小路径覆盖就可以了。(注意:匈牙利跑最小路径覆盖只限于DAG,原来任意一条边x->y直接当做左边点x向右边点y连边,跑出来最大匹配,然后点数-最大匹配就是最小路径覆盖)。