首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
zoj1654
】的更多相关文章
ZOJ1654 Place the Robots
Zoj1654 标准解法:二分匈牙利. 写法各异嘛,看不懂或者懒得看也正常,如果想了解我思路的可以和我讨论的. 在练习sap,所以还是写了一遍: #include<cstdio> #include<cstdlib> #include<iostream> #include<cstring> #include<algorithm> #include<memory.h> #include<cmath> using namespa…
ZOJ-1654 Place the Robots---二分图最小点覆盖+构图
题目链接: https://vjudge.net/problem/ZOJ-1654 题目大意: 有一个N*M(N,M<=50)的棋盘,棋盘的每一格是三种类型之一:空地.草地.墙.机器人只能放在空地上.在同一行或同一列的两个机器人,若它们之间没有墙,则它们可以互相攻击.问给定的棋盘,最多可以放置多少个机器人,使它们不能互相攻击. 解题思路: 和POJ-2226类似 我们将每一行,每一列被墙隔开,且包含空地的连续区域称作“块”.显然,在一个块之中,最多只能放一个机器人,我们把这些块编上号.同样,把竖…
ZOJ1654 Place the Robots(二分图最大匹配)
最大匹配也叫最大边独立集,就是无向图中能取出两两不相邻的边的最大集合. 二分图最大匹配可以用最大流来解. 如果题目没有墙,那就是一道经典的二分图最大匹配问题: 把地图上的行和列分别作为点的X部和Y部,地图上每一块空地看作边,边的两个端点就是它所在的x行y列.这样,求最大边独立集即可. 而这一题有墙,然后我不会了.. 其实这题的建模也是一样的,也是行和列作为点,空地作为边: 对于每一行把被墙分隔的每一块连通的区域缩成一点,列也一样: 行缩成的点作为X部,列Y部: 某行连通区域最多就只能在区域内某一…
zoj1654 Place the Robots 二分图最大匹配
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=654 将每一行的包含空地的区域编号 再将每一列的包含空地的区域编号 然后把每一个横向块看作二部图中顶点的集合x中的顶点 竖向块看作集合y中的顶点,若两个块有公共的空地,则将他们连边 然后就转化为二分图最大匹配问题 代码: #include<iostream> #include<cstdlib> #include<cstring> #inclu…
zoj1654
题解: 对于每一联通的x,y 检点 然后交叉的连边 然后二分图 代码: #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> using namespace std; ; int cas,n,m,num,t,x[N][N],y[N][N],f[N],fi[N],ne[N],zz[N],match[N],r,c; char s[N][N]; void jb(int x,in…
TJOI2016 && HEOI2016 解题报告
好吧我来写一波题解骗访问量QAQ 题目可以在cogs提交 bzoj4551~4456 D1T1 tree 树剖可做,然而有更简单的做法,10min搞定 维护一个并查集,时光倒流,如果当前点没有标记就把并查集合并到父亲上,查询就是并查集就可以了 #include <algorithm> #include <iostream> #include <cstring> #include <cstdio> #define maxn 200010 using names…
OJ题目分类
POJ题目分类 | POJ题目分类 | HDU题目分类 | ZOJ题目分类 | SOJ题目分类 | HOJ题目分类 | FOJ题目分类 | 模拟题: POJ1006 POJ1008 POJ1013 POJ1016 POJ1017 POJ1169 POJ1298 POJ1326 POJ1350 POJ1363 POJ1676 POJ1786 POJ1791 POJ1835 POJ1970 POJ2317 POJ2325 POJ2390 POJ1012 POJ1082 POJ1099 POJ1114…