• [ZJOI2009]假期的宿舍


    1433: [ZJOI2009]假期的宿舍

    Time Limit: 10 Sec  Memory Limit: 162 MB
    Submit: 2870  Solved: 1213
    [Submit][Status][Discuss]

    Description

    Input

    Output

    Sample Input

    1
    3
    1 1 0
    0 1 0
    0 1 1
    1 0 0
    1 0 0

    Sample Output

    ˆ ˆ

    HINT

    对于30% 的数据满足1 ≤ n ≤ 12。
    对于100% 的数据满足1 ≤ n ≤ 50,1 ≤ T ≤ 20。

    左边:在校的不回家的,和不在校的

    右边:在校的人的床

    最大匹配

    #include<cstdio>
    #include<cstring>
    #define N 51
    using namespace std;
    int T,n,ans,sum;
    bool in[N],home[N],know[N][N],live[N][N];
    bool v[N];
    int match[N];
    bool go(int u)
    {
        for(int i=1;i<=n;i++)
         if(in[i]&&live[u][i]&&!v[i])
         {
             v[i]=true;
             if(!match[i]||go(match[i]))
             {
                 match[i]=u;
                 return 1;
            }
         }
        return 0;
    }
    int main()
    {
        scanf("%d",&T);
        while(T--)
        {
            scanf("%d",&n);
            ans=sum=0;
            memset(live,0,sizeof(live));
            memset(match,0,sizeof(match));
            for(int i=1;i<=n;i++)  scanf("%d",&in[i]);
            for(int i=1;i<=n;i++) scanf("%d",&home[i]);
            for(int i=1;i<=n;i++)
             for(int j=1;j<=n;j++)
              scanf("%d",&know[i][j]);
            for(int i=1;i<=n;i++)
            {
                //if(!in[i]||home[i]) continue;
                if(in[i]&&home[i]) continue;
                sum++;
                for(int j=1;j<=n;j++)
                 live[i][j]=know[i][j];
                live[i][i]=1;
            }
            for(int i=1;i<=n;i++)
            {
                if(in[i]&&home[i]) continue;
                memset(v,0,sizeof(v));
                if(go(i)) ans++;
            }
            if(ans==sum) puts("^_^");
            else puts("T_T");
        }
    }
  • 相关阅读:
    333333
    钢镚儿冲刺一周期第六天
    钢镚儿冲刺一周期第五天
    钢镚儿冲刺一周期第四天
    钢镚儿冲刺一周期第三天
    钢镚儿冲刺一周期第二天
    钢镚儿冲刺一周期第一天
    软件工程第九周总结
    CVPR论文的爬取
    构建之法读后感第五
  • 原文地址:https://www.cnblogs.com/TheRoadToTheGold/p/6914582.html
Copyright © 2020-2023  润新知