标签:
#include<stdio.h> #include<string.h> const int MAXN = 507; const int oo = 1e9+7; struct point{int wi, li, hi;}p[MAXN]; int G[MAXN][MAXN], Ly[MAXN], N; bool used[MAXN]; bool OK(point a, point b) { if(a.hi<b.hi && a.li<b.li && a.wi<b.wi) return true; return false; } bool Find(int i) { for(int j=1; j<=N; j++) { if(!used[j] && G[i][j]) { used[j] = true; if(!Ly[j] || Find(Ly[j])) { Ly[j] = i; return true; } } } return false; } int XYL() { memset(Ly, 0, sizeof(Ly)); int ans = 0; for(int i=1; i<=N; i++) { memset(used, false, sizeof(used)); if(Find(i) == true) ans++; } return ans; } int main() { while(scanf("%d", &N), N) { int i, j; memset(G, 0, sizeof(G)); for(i=1; i<=N; i++) scanf("%d%d%d", &p[i].wi, &p[i].li, &p[i].hi); for(i=1; i<=N; i++) for(j=1; j<=N; j++) { if(OK(p[i], p[j]) == true) G[i][j] = 1; } printf("%d\n", N-XYL()); } return 0; }
标签:
原文地址:http://www.cnblogs.com/liuxin13/p/4730611.html