HDU 4160Dolls (二分图)

来源:互联网 发布:黑暗之魂3捏脸数据 编辑:程序博客网 时间:2024/05/31 11:04

PS:类似于盒子问题,给定盒子的长宽高的大小,只不过多了一个高。

#include <iostream>#include <cstring>#include <cstdio>#include <algorithm>using namespace std;struct node{    int l,h,w;}q[601];int mp[601][601];bool op(node a,node b){     return a.l*a.h<b.l*b.h;}int cro[601],n;bool vis[601];bool so(int x){    for(int i = n;i >=1;-- i){        if(mp[x][i]&&!vis[i]){            vis[i] = true;            if(cro[i] == -1||so(cro[i])){                cro[i] = x;                return true;            }        }    }    return false;}int main(){    int m,i,j,k,ans;    while(~scanf("%d",&n)&&n){        memset(mp,0,sizeof(mp));        for(i = 1;i <= n;++ i){            scanf("%d%d%d",&q[i].l,&q[i].w,&q[i].h);        }        sort(q+1,q+1+n,op);        for(i = 1;i <= n;++i ){            for(j = i+1 ;j <= n;++ j){                if(q[j].l > q[i].l&&q[j].h > q[i].h&&q[j].w> q[i].w)                    mp[i][j]=1;            }        }        ans = n;        memset(cro,-1,sizeof(cro));        for(i = n;i >=1;-- i){            memset(vis,false,sizeof(vis));            if(so(i))                ans--;        }        printf("%d\n",ans);    }    return 0;}
0 0
原创粉丝点击