hdu 4619 Warm up 2 (二分图)
来源:互联网 发布:西北师大知行学院萧泰 编辑:程序博客网 时间:2024/05/16 02:28
Warm up 2
Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 1754 Accepted Submission(s): 781
Problem Description
Some 1×2 dominoes are placed on a plane. Each dominoe is placed either horizontally or vertically. It's guaranteed the dominoes in the same direction are not overlapped, but horizontal and vertical dominoes may overlap with each other. You task is to remove some dominoes, so that the remaining dominoes do not overlap with each other. Now, tell me the maximum number of dominoes left on the board.
Input
There are multiple input cases.
The first line of each case are 2 integers: n(1 <= n <= 1000), m(1 <= m <= 1000), indicating the number of horizontal and vertical dominoes.
Then n lines follow, each line contains 2 integers x (0 <= x <= 100) and y (0 <= y <= 100), indicating the position of a horizontal dominoe. The dominoe occupies the grids of (x, y) and (x + 1, y).
Then m lines follow, each line contains 2 integers x (0 <= x <= 100) and y (0 <= y <= 100), indicating the position of a horizontal dominoe. The dominoe occupies the grids of (x, y) and (x, y + 1).
Input ends with n = 0 and m = 0.
The first line of each case are 2 integers: n(1 <= n <= 1000), m(1 <= m <= 1000), indicating the number of horizontal and vertical dominoes.
Then n lines follow, each line contains 2 integers x (0 <= x <= 100) and y (0 <= y <= 100), indicating the position of a horizontal dominoe. The dominoe occupies the grids of (x, y) and (x + 1, y).
Then m lines follow, each line contains 2 integers x (0 <= x <= 100) and y (0 <= y <= 100), indicating the position of a horizontal dominoe. The dominoe occupies the grids of (x, y) and (x, y + 1).
Input ends with n = 0 and m = 0.
Output
For each test case, output the maximum number of remaining dominoes in a line.
Sample Input
2 30 00 30 11 11 34 50 10 23 12 20 01 02 04 13 20 0
Sample Output
46
Source
2013 Multi-University Training Contest 2
题意:一个多米诺骨牌占两个格子,有的占水平的两个格子,有的占据垂直的两个格子,这些多米诺骨牌有的重叠。现在需要移去相互重叠的,求最多留下几个多米诺骨牌。
思路:一个多米诺骨牌占两个格子连一条边,求最大匹配OK!
#include"stdio.h"#include"string.h"#include"queue"using namespace std;#define N 105#define M 4005int mark[M],link[M],g[N][N];int n,m,t;int head[M];int dir[4][2]={0,1,0,-1,-1,0,1,0};struct node{ int u,v,next;}map[M];int max(int a,int b){ return a>b?a:b;}void add(int u,int v){ map[t].u=u; map[t].v=v; map[t].next=head[u]; head[u]=t++;}int find(int k){ int i,v; for(i=head[k];i!=-1;i=map[i].next) { v=map[i].v; if(!mark[v]) { mark[v]=1; if(link[v]==-1||find(link[v])) { link[v]=k; return 1; } } } return 0;}int main(){ int i,j,u,v,cnt; while(scanf("%d%d",&n,&m),n||m) { memset(g,-1,sizeof(g)); memset(map,0,sizeof(map)); memset(head,-1,sizeof(head)); t=0; cnt=0; for(i=0;i<n;i++) { scanf("%d%d",&u,&v); if(g[u][v]==-1) { g[u][v]=cnt++; } if(g[u+1][v]==-1) { g[u+1][v]=cnt++; } add(g[u][v],g[u+1][v]); add(g[u+1][v],g[u][v]); } for(i=0;i<m;i++) { scanf("%d%d",&u,&v); if(g[u][v]==-1) { g[u][v]=cnt++; } if(g[u][v+1]==-1) { g[u][v+1]=cnt++; } add(g[u][v],g[u][v+1]); add(g[u][v+1],g[u][v]); } int ans=0; memset(link,-1,sizeof(link)); for(i=0;i<cnt;i++) { memset(mark,0,sizeof(mark)); ans+=find(i); } printf("%d\n",ans/2); } return 0;}
0 0
- hdu 4619 Warm up 2(二分图最大匹配)
- hdu 4619 Warm up 2 (二分图)
- hdu 4619 Warm up 2[二分匹配]
- hdu 4619 Warm up 2 (二分匹配)
- hdu 4619 Warm up 2 (二分匹配)
- hdu 4619 Warm up 2【二分匹配】
- hdu Warm up 2( 二分图匹配)
- hdu 4619 Warm up 2 ( 二分图最大匹配 )
- HDU 4619 Warm up 2 (二分图最小覆盖集)
- HDU-4619 Warm up 2 二分图匹配。
- HDU 4619 Warm up 2 (二分图最小覆盖集)
- HDU 4619-Warm up (二分图匹配)
- hdu 4619 Warm up 2 (二分图最大独立集)
- HDU 4619 —— Warm up 2(二分图最大匹配)
- HDU 4619 Warm up 2(贪心、并查集 | 二分图最大独立集)
- HDU 4619 Warm up 2(最大流或二分匹配)
- hdu 4619 Warm up 2(KM)
- hdu 4619 Warm up 2
- List深度Copy-序列化
- 数据库索引的优缺点分析
- 引用和指针的联系和区别
- HDOJ 4891 The Great Pan(读入优化)
- 单例模式(JAVA)
- hdu 4619 Warm up 2 (二分图)
- jquery file upload报错:Uncaught TypeError: Cannot call method 'unshift' of undefined
- python 获取命令行参数
- 判断拼写串@str中是否含有ABC怎么写SQL
- MapReduct例子
- Palindromes _easy version回文(2029)
- hdu-oj 2123 An easy problem
- 安卓手机误删照片怎么恢复
- NIOS II 处理器性能测试