摘要: 传送门 经典的并查集问题 对于这种问题,并查集需要分类 开3*n的并查集,其中x用来连接与x同类的,x+n用来连接x吃的,x+2*n用来连接x被吃的。 1 x y时,如果 x吃y 或 x被y吃,那么为假话, 否则x与y同类,x吃的y也吃,x被吃的y也被吃; 2 x y时,如果 x与y同类(x与x自然 阅读全文
posted @ 2017-06-14 20:20 zht467 阅读(184) 评论(0) 推荐(0)
摘要: 传送门 模型 二分图最大独立集,转化为二分图最大匹配,从而用最大流解决。 实现 首先把棋盘黑白染色,使相邻格子颜色不同。 把所有可用的黑色格子看做二分图X集合中顶点,可用的白色格子看做Y集合顶点。 建立附加源S汇T,从S向X集合中每个顶点连接一条容量为1的有向边,从Y集合中每个顶点向T连接一条容量为 阅读全文
posted @ 2017-06-14 18:41 zht467 阅读(255) 评论(0) 推荐(0)
摘要: 此题oj上无spj,无法提交 【问题分析】 最大费用最大流问题。 【建模方法】 把网格中每个位置拆分成网络中两个节点<i.a>,<i.b>,建立附加源S汇T。 1、对于每个顶点i,j为i东边或南边相邻的一个节点,连接节点<i.b>与节点<j.a>一条容量为无穷大,费用为0的有向边。 2、从每个石块顶 阅读全文
posted @ 2017-06-14 16:44 zht467 阅读(182) 评论(0) 推荐(0)
摘要: 传送门 【问题分析】 最大费用最大流问题。 【建模方法】 把网格中每个位置抽象成网络中一个节点,建立附加源S汇T。 1、对于每个顶点i,j为i东边或南边相邻的一个节点,连接节点i与节点j一条容量为1,费用为该边价值的有向边。 2、对于每个顶点i,j为i东边或南边相邻的一个节点,连接节点i与节点j一条 阅读全文
posted @ 2017-06-14 15:28 zht467 阅读(211) 评论(0) 推荐(0)
摘要: 传送门 输入所有 a[i],求出平均值 sum,每个 a[i] -= sum 那么如果 a[i] > 0,从 s 向 i 连一条容量为 a[i] 费用为 0 的有向边 如果 a[i] < 0,从 i 向 t 连一条容量为 -a[i] 费用为 0 的有向边 每个点 i 和它相邻的两个点连一条容量为 I 阅读全文
posted @ 2017-06-14 14:30 zht467 阅读(191) 评论(0) 推荐(0)
摘要: 传送门 脑残题 建图都懒得说了 ——代码 1 #include <queue> 2 #include <cstdio> 3 #include <cstring> 4 #include <iostream> 5 #define N 1000001 6 #define min(x, y) ((x) < 阅读全文
posted @ 2017-06-14 11:27 zht467 阅读(255) 评论(0) 推荐(0)
摘要: 传送门 水题。 建图都不想说了 ——代码 1 #include <queue> 2 #include <cstdio> 3 #include <cstring> 4 #include <iostream> 5 #define INF 1e9 6 #define M 101 7 #define N 1 阅读全文
posted @ 2017-06-14 11:14 zht467 阅读(186) 评论(0) 推荐(0)