标签:
#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