摘要: [bzoj][1] [luogu][2] sol 最小割树 请转[一道很相似~~完全一模一样~~的题][3] 所以跑出所有点对之间的最小割然后暴力统计答案即可。 code cpp include include include include using namespace std; int gi( 阅读全文
posted @ 2018-03-20 23:03 租酥雨 阅读(178) 评论(0) 推荐(0) 编辑
摘要: [bzoj][1] [luogu][2] sol 每对点对之间跑一遍最小割?naive了吧。 我们考虑任选两个点做一个最小割,那么这个最小割就会把原图分成两个点集。设这个最小割的权值为$val$,那么分处于两个点集的点对之间的最小割一定 不大于 $val$。 然后对于两个点集分别递归处理,每次在当前 阅读全文
posted @ 2018-03-20 23:00 租酥雨 阅读(218) 评论(0) 推荐(0) 编辑
摘要: [bzoj][1] [luogu][2] sol 假设不要求字典序最小,只求代价之和最小,那应该还是很好求的吧。 先对原序列求出一个$LIS$的$dp$数组,然后每个位置拆成两个点,所有$X_i$向$Y_i$连$B_i$的边,然后$S$向$X_i(dp_i=1)$,$Y_i(dp_i=LIS)$向$ 阅读全文
posted @ 2018-03-20 22:37 租酥雨 阅读(407) 评论(6) 推荐(2) 编辑
摘要: [bzoj][1] [luogu][2] sol 因为交换两个同色的棋子是没有意义的,所以可以视作只有黑色的棋子在棋盘上,每次向相邻的格子移动一步,求最小移动次数。 把每个格子拆成三个点:原点,出点,入点。 考虑一个格子,有且仅有四种情况:初始没有棋子目标也没有棋子,初始没有棋子目标有棋子,初始有棋 阅读全文
posted @ 2018-03-20 22:16 租酥雨 阅读(450) 评论(0) 推荐(2) 编辑
摘要: "bzoj" "luogu" sol 很显然的建边方式:普通的桥建双向流量$inf$的边,危桥建双向流量$2$的边。 然后分别从$a_1$,$b_1$向$a_2$,$b_2$跑最大流,保证流量分别要大于等于$a_n$,$b_n$。 多源汇且源汇一一对应的网络流是一类NPC问题,但在这里只有两源两汇, 阅读全文
posted @ 2018-03-20 21:58 租酥雨 阅读(147) 评论(0) 推荐(0) 编辑