标签:
#include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> using namespace std; #define clr(a,b) memset(a,b,sizeof(a)) const int maxn = 1005; struct H { int x,y,id,z; }no[maxn]; bool cmp1(H a,H b){return a.x<b.x;} bool cmp2(H a,H b){return a.y<b.y;} int nx[maxn],ny[maxn],nz[maxn]; int mp[maxn][maxn],mm[maxn][maxn]; int vx[maxn],vy[maxn]; int cx[maxn],cy[maxn]; int vis[maxn],sign[maxn]; int cnx,cny; int dfs(int x) { for(int i=0;i<cny;i++) { if(!vis[i]&&mp[x][i]) { vis[i]=1; if(sign[i] == -1||dfs(sign[i])) { sign[i]=x; return 1; } } } return 0; } int main() { #ifndef ONLINE_JUDGE freopen("E.txt","r",stdin); freopen("out.cpp","w",stdout); #endif // ONLINE_JUDGE int n; while(~scanf("%d",&n)) { for(int i=0;i<n;i++){ scanf("%d%d%d",&no[i].z,&no[i].x,&no[i].y); no[i].id=i; } sort(no,no+n,cmp1); cnx=-1; nx[no[0].id]=++cnx; for(int i=1;i<n;i++) { if(no[i].x==no[i-1].x) nx[no[i].id]=cnx; else nx[no[i].id]=++cnx; } sort(no,no+n,cmp2); cny=-1; ny[no[0].id]=++cny; for(int i=1;i<n;i++) { if(no[i].y==no[i-1].y) ny[no[i].id]=cny; else ny[no[i].id]=++cny; } cnx++; cny++; for(int i=0;i<n;i++) nz[no[i].id]=no[i].z; clr(mp,0);clr(vx,0);clr(vy,0); for(int i=0;i<n;i++) { if(nz[i]) mp[nx[i]][ny[i]]=1; else{ vx[nx[i]]=1;vy[ny[i]]=1; } } int flag=0; for(int i=0;i<cnx;i++){ if(vx[i]){ for(int j=0;j<cny;j++){ if(vy[j]) {if(mp[i][j]){flag=1;break;}} } } if(flag) break; } if(flag) {printf("Sorry\n");continue;} int ans=0; clr(cx,0);clr(cy,0); for(int i=0;i<cnx;i++){ if(vx[i]){ for(int j=0;j<cny;j++) if(mp[i][j]) {cy[j]=1;} } } for(int i=0;i<cny;i++){ if(vy[i]){ for(int j=0;j<cnx;j++) if(mp[j][i]) {cx[j]=1;} } } for(int i=0;i<cnx;i++){ if(cx[i]) {ans++;for(int j=0;j<cny;j++) if(mp[i][j])mp[i][j]=0;} } for(int i=0;i<cny;i++){ if(cy[i]) { ans++;for(int j=0;j<cnx;j++) if(mp[j][i])mp[j][i]=0; } } memset(sign,-1,sizeof(sign)); for(int i=0;i<cnx;i++) { memset(vis,0,sizeof(vis)); if(dfs(i)) ans++; } printf("%d\n",ans); } return 0; }
版权声明:本文为博主原创文章,未经博主允许不得转载。
hunnu OJ 11564 Easy Delete(二维坐标的离散化处理+最大匹配)
标签:
原文地址:http://blog.csdn.net/u012313382/article/details/47399309