[TYVJ1035] 棋盘覆盖|匈牙利算法|二分图匹配
2015-08-26 15:12
330 查看
P1035 棋盘覆盖
时间: 1000ms / 空间: 131072KiB / Java类名: Main
第二行到m+1行为x,y,分别表示删除格子所在的位置
x为第x行
y为第y列
先进行二分图染色,然后匈牙利(0ms)或者网络流(60ms)
时间: 1000ms / 空间: 131072KiB / Java类名: Main
描述
给出一张n*n(n<=100)的国际象棋棋盘,其中被删除了一些点,问可以使用多少1*2的多米诺骨牌进行掩盖。输入格式
第一行为n,m(表示有m个删除的格子)第二行到m+1行为x,y,分别表示删除格子所在的位置
x为第x行
y为第y列
输出格式
一个数,即最大覆盖格数测试样例1
输入
8 0
输出
32
备注
经典问题先进行二分图染色,然后匈牙利(0ms)或者网络流(60ms)
#include<iostream> #include<cstdio> #include<cstring> #include<cstdlib> #include<algorithm> #include<cmath> #define N 10005 using namespace std; int a[105][105]; int yy ,lk ,head ; int n,m,cnt,ans; int next[N<<2],list[N<<2]; int dis ,q ; int dx[4]={-1,0,1,0}; int dy[4]={0,-1,0,1}; inline int read() { int a=0,f=1; char c=getchar(); while (c<'0'||c>'9') {if (c=='-') f=-1; c=getchar();} while (c>='0'&&c<='9') {a=a*10+c-'0'; c=getchar();} return a*f; } inline int c(int x,int y) {return (x-1)*n+y;} inline void insert(int x,int y) { next[++cnt]=head[x]; head[x]=cnt; list[cnt]=y; } bool Hungary(int v) { for (int i=head[v];i;i=next[i]) if (!yy[list[i]]) { yy[list[i]]=1; if (!lk[list[i]]||Hungary(lk[list[i]])) { lk[list[i]]=v; return 1; } } return 0; } int main() { n=read(); m=read(); int x,y; memset(a,1,sizeof(a)); for (int i=1;i<=m;i++) x=read(),y=read(),a[x][y]=0; for (int i=1;i<=n;i++) for (int j=1+(i%2==0);j<=n;j+=2) if (a[i][j]) for (int k=0;k<4;k++) { x=i+dx[k]; y=j+dy[k]; if (x<1||x>n||y<1||y>n||!a[x][y]) continue; insert(c(i,j),c(x,y)); } for (int i=1;i<=n;i++) for (int j=1+(i%2==0);j<=n;j+=2) if (a[i][j]) { memset(yy,0,sizeof(yy)); if (Hungary(c(i,j))) ans++; } printf("%d",ans); return 0; }
相关文章推荐
- c语言, objective code(new 1)
- 安装php时,make test报错
- 设置TableViewCell 分割线从最左侧绘制
- Apache HttpClient 4.3开发指南 实现URL重定向
- Json解析方式
- 关于 hashCode() 你需要了解的 3 件事
- Tomcat指定JAVA_HOME而不用环境变量
- 最小生成树模板
- 纯css实现三角原理,兼容IE
- hbase meta表修复
- UVA 247 - Calling Circles (Floyd)
- Nginx加状态监控
- hadoop基础知识
- 数据缓存中的依赖关系
- MySQL索引建立和使用的基本原则
- 安装php时,make步骤报错make: *** [sapi/fpm/php-fpm] Error 1
- signal和sigaction的分析比较
- 罗永浩与坚果:一支强弩的妥协
- 2015年最新蓝牙模块及蓝牙方案
- 2DSprite的实时阴影