E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
CQOI2012
洛谷 P3159 [
CQOI2012
]交换棋子(费用流)
题目描述有一个n行m列的黑白棋盘,你每次可以交换两个相邻格子(相邻是指有公共边或公共顶点)中的棋子,最终达到目标状态。要求第i行第j列的格子只能参与mi,j次交换。输入输出格式输入格式:第一行包含两个整数n,m(1x出点,x出点->y进点,y进点->y中介点,这个过程中x移动了一次,y也移动了一次。假设一个点可以移动k次,如果这个点初始状态和结束状态一样,那么移动次数一定是双数且出和进一样(只有1
whisperlzw
·
2020-08-25 05:04
洛谷
网络流
BZOJ2668:[
CQOI2012
]交换棋子——题解
http://www.lydsy.com/JudgeOnline/problem.php?id=2668https://www.luogu.org/problemnew/show/P3159#sub有一个n行m列的黑白棋盘,你每次可以交换两个相邻格子(相邻是指有公共边或公共顶点)中的棋子,最终达到目标状态。要求第i行第j列的格子只能参与mi,j次交换。(18.3.6更新,感谢评论区一楼同学指出问题
weixin_34383618
·
2020-08-25 05:13
洛谷 P3159(BZOJ 2668)[
CQOI2012
]交换棋子
有一个\(n\)行\(m\)列的黑白棋盘,你每次可以交换两个相邻格子(相邻是指有公共边或公共顶点)中的棋子,最终达到目标状态。要求第\(i\)行第\(j\)列的格子只能参与\(m[i][j]\)次交换。输入格式:第一行包含两个整数\(n,m(1\(mid\)和\(mid\)->\(out\)两种边,如果边权是奇数,进出棋盘需要的流量只为\(1\),原本不应该被忽略的零头\(1\)可能会被忽略或者非
weixin_34102807
·
2020-08-25 05:22
【题解】
CQOI2012
交换棋子
感受到网络流的强大了……这道题目的关键在于:前后颜色不变的,流入流出的次数相等;原本是黑色的最后变成了白色,流出比流入次数多1;原本是白色最后变成黑色,流入比流出次数多一。所以我们将每一点拆成3个点,分别代表流入点,原点与流出点。最开始为黑色的点与源点连流量为1,费用为0的边,最后为黑色的点与汇点连流量为1,费用为0的边。#includeusingnamespacestd;#definemaxn3
weixin_30681615
·
2020-08-25 05:40
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数字的
EternalDespair
·
2020-08-25 04:44
bzoj
noi模拟题
【bzoj2668】【
cqoi2012
】【交换棋子】【费用流】
Description有一个n行m列的黑白棋盘,你每次可以交换两个相邻格子(相邻是指有公共边或公共顶点)中的棋子,最终达到目标状态。要求第i行第j列的格子只能参与mi,j次交换。Input第一行包含两个整数n,m(1#include#include#defineN2000#defineM50000#defineinf707406378usingnamespacestd;charmap[40][40
sunshinezff
·
2020-08-25 04:00
网络流
bzoj2668 [
cqoi2012
]交换棋子
http://www.elijahqi.win/2018/02/12/bzoj2668/Description有一个n行m列的黑白棋盘,你每次可以交换两个相邻格子(相邻是指有公共边或公共顶点)中的棋子,最终达到目标状态。要求第i行第j列的格子只能参与mi,j次交换。Input第一行包含两个整数n,m(12为限制最多换入的流量2->3为最多换出的流量假设这个点原来是黑然后后来变成了白点这个限制说明我
elijahqi
·
2020-08-25 03:08
网络流
BZOJ 2668: [
cqoi2012
]交换棋子 最小费用最大流
titleBZOJ2668LUOGU3159Description有一个n行m列的黑白棋盘,你每次可以交换两个相邻格子(相邻是指有公共边或公共顶点)中的棋子,最终达到目标状态。要求第i行第j列的格子只能参与mi,j次交换。Input第一行包含两个整数n,m(1usingnamespacestd;constintdx[]={-1,-1,-1,0,1,1,1,0},dy[]={-1,0,1,1,1,0
dilu0653
·
2020-08-25 03:29
【
CQOI2012
】交换棋子(费用流)
题目大意:有一个n行m列的黑白棋盘,你每次可以交换两个相邻格子(相邻是指有公共边或公共顶点)中的棋子,最终达到目标状态。要求第i行第j列的格子只能参与M[i][j]次交换。题解:看做棋盘上有几个棋子,其余为空格,目标是将所有棋子移到目标位置(第一步和最后一步代价为1,其余均为2(神奇的交换))。建立网络流模型,需要拆点,将每个格子转换为2个点,中间一条边用来限制交换次数M[i][j]。(A[I][
CaptainHarryChen
·
2020-08-25 02:37
题解
图论
BZOJ 2668 [
CQOI2012
]交换棋子——题解
留坑转载于:https://www.cnblogs.com/zzyer/p/8506196.html
auu55357
·
2020-08-25 02:11
【BZOJ2668】【
cqoi2012
】交换棋子 费用流
链接:#includeintmain(){puts("转载请注明出处[vmurder]谢谢");puts("网址:blog.csdn.net/vmurder/article/details/44702813");}前言:本来以为这种双限制流量的方法很通用很好用,所以没有去写那个一个点拆成俩的奇葩做法……但是后来我发现,这种一个点拆成三个的方法没有任何意义,它只是针对了这道题的特殊性质噗。好像并不能
空灰冰魂
·
2020-08-25 02:52
费用流
[BZOJ2668][
CQOI2012
]交换棋子(费用流)
题目:我是超链接题解:能够看出来这道题目是网络流,但并不清楚这个图怎么建这种有交换次数限制的要考虑分成两半:最多流入的数量,最多流出的数量作为流量限制我们对于每个节点拆成三个点:x1,x2,x3,一个点的流量限制为val[i][j]整体的连接方向是x1->x2->x3如果只有原图中这个点是黑点.cap=val[i][j]/2,cost=0;.cap=(val[i][j]+1)/2,cost=0;.
wwyx2001
·
2020-08-25 02:39
网络流
省选
交换棋子题解
P3159[
CQOI2012
]交换棋子题意:把这题作为费用流入门题真的会自闭有误请指出,谢谢~正解:首先可以把白棋当作空白区域,从起始位置到最终位置可以看成是若干黑色棋子的移动,并且每个格子有访问次数限制
cornivores
·
2020-08-25 02:44
bzoj2668: [
cqoi2012
]交换棋子
--[
cqoi2012
]交换棋子2668:[
cqoi2012
]交换棋子TimeLimit:3SecMemoryLimit:128MBSubmit:1503Solved:615[Submit][Status
spzb
·
2020-08-24 09:55
费用流
费用流
拆点
luogu3159 [
CQOI2012
]交换棋子
把每个点拆成xyz对于第i个点,x->y是表示流入的,y->z是表示流出的。#include#include#include#includeusingnamespacestd;intn,m,ss,tt,hea[1305],cnt,minCost,pre[1305],dis[1305],maxFlow,qaq,qwq;constintoo=0x3f3f3f3f;constintdx[]={0,1,1
dianjiaxian1205
·
2020-08-20 23:40
BZOJ 2669
cqoi2012
局部极小值 状压DP+容斥原理
在CCPC网络赛上遇到由此改编的原题,然而并没有做出来…..题意:给定一个n∗m的矩阵,标记出其中的局部极小值,要求填入1…n∗m,求方案数SampleInput24.X..…X42X.....X.12XXSampleOutputCase#1:2100Case#2:2520Case#3:0由于局部极小值最多8个,我们可以状压DP令fi,j表示已经填完了前i个数,局部极小值的填充状态为j的方案数预处
JavonLu
·
2020-08-20 03:48
DP
BZOJ2669: [
cqoi2012
]局部极小值-状压DP+容斥
传送门题意:有一个n行m列的整数矩阵,其中1到n∗mn∗m之间的每个整数恰好出现一次。如果一个格子比所有相邻格子(相邻是指有公共边或公共顶点)都小,我们说这个格子是局部极小值。给出所有局部极小值的位置,判断有多少个可能的矩阵。(1≤n≤4,1≤m≤7)(1≤n≤4,1≤m≤7)Solution:显然我们把矩阵所有的状态存下来是不行的,所以说我们考虑减少我们需要存储的状态:我们的局部极小值最多只会有
Fizzmy
·
2020-08-20 02:23
状态压缩
容斥
[
CQOI2012
]模拟工厂 题解(搜索+贪心)
[
CQOI2012
]模拟工厂题解(搜索+贪心)标签:题解阅读体验:https://zybuluo.com/Junlier/note/1327574链接题目地址:洛谷P3161BZOJP2667这个题练一练综合思想还是不错的
eternal风度
·
2020-07-14 20:45
BZOJ-2668: [
cqoi2012
]交换棋子(费用流)
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2668建模有点神奇,然后就直接费用流了。代码:#include#include#includeusingnamespacestd;#definemaxvmaxn*maxn*3#definemaxn25#defineinf0x7fffffff#definecheck(x,y)(x>0&&y>0&&
AmadeusChan
·
2020-06-23 08:08
[
CQOI2012
] 交换棋子 - 费用流
有一个n行m列的黑白棋盘,你每次可以交换两个相邻格子(相邻是指有公共边或公共顶点)中的棋子,最终达到目标状态。要求第i行第j列的格子只能参与mi,j次交换。Solution一个点拆三份,入点,主点,出点入点向主点连边,主点向出点连边,设该点允许的交换次数为\(x\),根据以下规则确定若为初态点,则入边限流\(x/2\),出边限流\((x+1)/2\)若为末态点,则入边限流\((x+1)/2\),出
Mollnn
·
2020-02-13 09:00
@bzoj - 2668@ [
cqoi2012
]交换棋子
目录@description@@solution@@acceptedcode@@details@@description@有一个n行m列的黑白棋盘,你每次可以交换两个相邻格子(相邻是指有公共边或公共顶点)中的棋子,最终达到目标状态。要求第i行第j列的格子只能参与mi,j次交换。Input第一行包含两个整数n,m(1x',中间连容量为\(\lfloor\frac{m_{i,j}}{2}\rfloor
Tiw_Air_OAO
·
2019-08-27 08:00
P3160 [
CQOI2012
]局部极小值 题解(状压DP+容斥)
题目链接P3160[
CQOI2012
]局部极小值双倍经验,双倍快乐解题思路存下来每个坑(极小值点)的位置,以这个序号进行状态压缩。
Potassium
·
2019-03-03 21:00
[
CQOI2012
]交换棋子,洛谷P3159,最小费用最大流
正题题目链接两个很显然的性质:1.我们只会交换两个颜色不同的棋子。2.如果路上有棋子,那么这条路肯定没有前面的棋子走优。那么,就相当于黑棋经过一堆白棋走到一个白棋。我们来考虑交换问题。除了一条交换路径的头尾交换一次之外,每个点都要被交换两次。怎么解决?解法十分显然,拆三个点,a向b连边,b向c连边我们规定从起点从b出发,终点在b结束,那么消耗的流量就是所消耗的交换次数。a,b,c连边的流量怎么设置
Deep_Kevin
·
2018-11-24 08:04
[BZOJ2669][
cqoi2012
][状压DP][容斥原理]局部极小值
去年暑假就见过这道题,觉得太难就扔到一边,这几天上课讲到就填上这个坑考虑状压DP,因为普通DP出来的方案数中会存在局部最小值大于给定数量的情况,所以要dfs出所有情况然后容斥#include#include#include#include#include#definemod12345678usingnamespacestd;intn,m,Ans,tp;charA[10][10];intstr[10
LowestJN
·
2017-02-21 20:32
DP
状压DP
容斥原理
BZOJ 2666: [
cqoi2012
]组装
题目链接:http://www.lydsy.com:808/JudgeOnline/problem.php?id=2666 题意:n种零件,m个位置,每个位置有一个零件。求一个位置x,使得cost(1)+cost(2)+…+cost(n)最小。cost(i)表示 x到最近的i类型零件的距离的平方。 思路:我们最后的最优答案一定从所有m个位置中选出了n个使得每种零件恰有一个。设第i种零件的所有位
·
2015-11-02 16:01
2012
BZOJ 2669
cqoi2012
局部极小值 状压DP+容斥原理
题目大意:给定一个n∗m的矩阵,标记出其中的局部极小值,要求填入1...n∗m,求方案数《多年的心头大恨终于切掉了系列》考虑将数字从小到大一个一个填进去由于局部极小值最多8个,我们可以状压DP令fi,j表示已经填完了前i个数,局部极小值的填充状态为j的方案数预处理出cntj表示填充状态为j时共有多少位置是可以填充的(包括已填充的局部极小值位置)那么有DP方程fi,j=fi−1,j∗C1cntj−i
PoPoQQQ
·
2015-08-27 15:00
容斥原理
bzoj
状压dp
BZOJ2669
[
CQOI2012
]组装 (非贪心,数学解法)
题目描述数轴上有m个生产车间可以生产零件。一共有n种零件,编号为1~n。第i个车间的坐标为xi,生产第pi种零件(1 #include #include #include usingnamespacestd; #defineDBdouble constintMAXN=10005; constintMAXM=200005; intN,M,cnt; structNode{//我忘记给这个链表排序了,如
u011542204
·
2015-08-13 19:00
BZOJ 2667
cqoi2012
模拟工厂 贪心
题目大意:现在你有一个工厂,初始生产力为1,每一时刻你可以进行如下操作:1.将生产力提高12.生产一些产品,数量等于当前生产力的数值现在你有n个订单,每一份有一个交易时间t,一个商品数量g和一个价格m,可以接或者不接,如果接就要在t时刻操作之前减少g的商品数量,然后得到m的钱求最大收益跪shanest大爷。。。由于n≤15,爆枚接受哪些订单每次Check的时候,对于每段时间显然先提高生产力再生产产
PoPoQQQ
·
2015-07-04 21:00
贪心
bzoj
BZOJ2667
BZOJ 2666
cqoi2012
组装 贪心
题目大意:给定数轴上的m个点,共有n种颜色,要求在数轴上选定一个点,使这个点到每种颜色最近的点的平方和最小初始将所有颜色最左侧的点作为最近点,然后不断选择【当前点与同种颜色下一个点的中点最靠左的点】进行替换,并更新ans理性证明见http://www.cnblogs.com/jianglangcaijin/p/4204478.html下面来个感性证明:这不是显然么--考虑将组装车间从-∞移动到+∞
PoPoQQQ
·
2015-03-30 21:00
贪心
bzoj
BZOJ2666
上一页
1
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他