BZOJ 2668 交换棋子(费用流)】的更多相关文章

[BZOJ2668][cqoi2012]交换棋子 Description 有一个n行m列的黑白棋盘,你每次可以交换两个相邻格子(相邻是指有公共边或公共顶点)中的棋子,最终达到目标状态.要求第i行第j列的格子只能参与mi,j次交换. Input 第一行包含两个整数n,m(1<=n, m<=20).以下n行为初始状态,每行为一个包含m个字符的01串,其中0表示黑色棋子,1表示白色棋子.以下n行为目标状态,格式同初始状态.以下n行每行为一个包含m个0~9数字的字符串,表示每个格子参与交换的次数上限.…
Description 有一个n行m列的黑白棋盘,你每次可以交换两个相邻格子(相邻是指有公共边或公共顶点)中的棋子,最终达到目标状态.要求第i行第j列的格子只能参与mi,j次交换. Input 第一行包含两个整数n,m(1<=n, m<=20).以下n行为初始状态,每行为一个包含m个字符的01串,其中0表示黑色棋子,1表示白色棋子.以下n行为目标状态,格式同初始状态.以下n行每行为一个包含m个0~9数字的字符串,表示每个格子参与交换的次数上限.   Output 输出仅一行,为最小交换总次数.…
Link: BZOJ 2668 传送门 Solution: 重点在于对于每条转移路径:首尾算一次,中间节点算两次 可以一点拆三点,将原流量拆成入流量和出流量 但其实也可以就拆两点,分前后是否是一首尾点一普通点来确定是否有一条路径只占用1流量 Code: #include <bits/stdc++.h> using namespace std; #define X first #define Y second typedef long long ll; typedef pair<int,i…
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=2668 题意:有一个n行m列的黑白棋盘,你每次可以交换两个相邻格子中的棋子,最终达到目标状态.要求第i行第j列的格子只能参与m[i,j]次交换. 思路: 我们将1看做要移动的数字,将0看做空白.那么若1在始末状态个数不同则无解:如某个格子始末状态均有1则这个格子的1对结果无影响,可以将其都置为0.将每个格子拆为为个点p0,p1,p2: (1)若格子初始为1,则连边:<s,p0,1,0>…
题目链接 首先黑白棋子的交换等价于黑棋子在白格子图上移动,都到达指定位置. 在这假设我们知道这题用网络流做. 那么黑棋到指定位置就是一条路径,考虑怎么用流模拟出这条路径. 我们发现除了路径的起点和终点的格子消耗次数为1,路径上其它点的格子交换次数为\(2\). 可以想到把每个点拆成\(in\)和\(out\),但这样无法体现出,作为起点/终点与路径中其它点的次数消耗差别. 于是拆成三个点,\(in,x,out\),\(x\)代表原点,设点\(x\)流量为\(lim\),\(in,out\)平分流…
有一个n行m列的黑白棋盘,你每次可以交换两个相邻格子(相邻是指有公共边或公共顶点)中的棋子,最终达到目标状态.要求第i行第j列的格子只能参与mi,j次交换. Solution 一个点拆三份,入点,主点,出点 入点向主点连边,主点向出点连边,设该点允许的交换次数为 \(x\) ,根据以下规则确定 若为初态点,则入边限流 \(x/2\),出边限流 \((x+1)/2\) 若为末态点,则入边限流 \((x+1)/2\),出边限流 \(x/2\) 否则,入边限流 \(x/2\),出边限流 \((x+1)…
题面 传送门 思路 抖机灵 一开始看到这题我以为是棋盘模型-_-|| 然而现实是骨感的 后来我尝试使用插头dp来交换,然后又惨死 最后我不得不把目光转向那个总能化腐朽为神奇的算法:网络流 思维 我们要先有一个思维的转变:要把棋盘上的"交换"操作,看成所有的黑色棋(白色棋等价)在移动 我们考虑令一个黑子往下移动一个 此时当前格子和下方格子的交换数都加一 考虑一条移动的路径,那么显然,这条路径两端的格子只进行了一次交换,但是路径上的所有格子进行了两次 我们可以考虑把这个过程变成网络流来做…
[bzoj 1449] 球队收益(费用流) Description Input Output 一个整数表示联盟里所有球队收益之和的最小值. Sample Input 3 3 1 0 2 1 1 1 10 1 0 1 3 3 1 2 2 3 3 1 Sample Output 43 Hint Solution 这题费用流裸题好吧. 先假设所有队在接下来的比赛中都会输掉,算出收益. 但是一场比赛应该有且只有一支球队赢得比赛,所以真实收益和我们算出来的收益就会有一些差值,再计算最小的差值即可. 我们可…
BZOJ 洛谷 \(Description\) 给定一张部分边方向已确定的竞赛图.你需要给剩下的边确定方向,使得图中的三元环数量最多. \(n\leq100\). \(Solution\) 这种选择之间有影响,而且\(n\)很小的题考虑网络流啊. 最理想的情况能得到的三元环个数是\(C_n^3\)个.我们考虑怎样会使三元环个数减少. 如果三个点之间不成三元环,那么一定是某个点入度为\(2\),某个点出度为\(2\),另一个点入度出度都为\(1\). 不妨只考虑入度.如果一个点入度为\(2\),那…
1070: [SCOI2007]修车 Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 2785  Solved: 1110[Submit][Status][Discuss] Description 同 一时刻有N位车主带着他们的爱车来到了汽车维修中心.维修中心共有M位技术人员,不同的技术人员对不同的车进行维修所用的时间是不同的.现在需要安排这M 位技术人员所维修的车及顺序,使得顾客平均等待的时间最小. 说明:顾客的等待时间是指从他把车送至维修中心到维…