题目链接:
1 #include2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #define maxn 1001 9 #define N 10510 using namespace std;11 12 int map[N][N];13 bool G[maxn][maxn];14 int n,m;15 int ans;16 bool vis[maxn];17 int link[maxn];18 int rnum,lnum;19 20 bool match(int u){ 21 for(int v=1;v >n>>m){45 if(n==0 && m==0) break;46 memset(G,0,sizeof(G));47 memset(map,0,sizeof(map));48 lnum = 1;49 for(int i=1;i<=n;i++){50 int x,y;51 scanf("%d%d",&x,&y); 52 map[x][y] = map[x+1][y] = lnum++; //53 }54 rnum = 1;55 for(int i=1;i<=m;i++){56 int x,y;57 scanf("%d%d",&x,&y);58 if(map[x][y]){59 G[map[x][y]][rnum] = true;60 }61 if(map[x][y+1]){62 G[map[x][y+1]][rnum] = true;63 }64 if(map[x][y] || map[x][y+1]) rnum++;65 66 } 67 solve();68 printf("%d\n",n+m-ans); 69 }70 }