zoukankan      html  css  js  c++  java
  • poj 3660 Cow Contest

    dp,图论

    题意:输入n和m表示n个牛(从1到n标号),下面m个信息,A B,表示A牛能打赢B牛。现在要给所有的牛排名(按实力从高到低),问哪些牛的排名是可以确定的

    如果知道由l个人能打赢自己,自己能打赢w个人,且l+w+1 = n的话,那么自己的排名就是可以确定的,所有转化为要求出,每个人,能打赢多少人,能被多少人打赢

    建图: dp[i][j]=1表示i能打赢j,=0表示不确定他们之间的关系,然后类似floyd那样dp,

    若dp[i][k]=1且dp[k][j]=1,则dp[i][j]=1

    dp结束后扫描一次整个dp数组即可

    被归为中等题,这不是水题么。。。。

    #include <cstdio>
    #include <cstring>
    #define N 110
    
    int dp[N][N];
    int n,m;
    
    int main()
    {
       while(scanf("%d%d",&n,&m)!=EOF)
       {
          memset(dp,0,sizeof(dp));
          for(int i=0; i<m; i++)
          {
             int u,v;
             scanf("%d%d",&u,&v);
             dp[u][v] = 1;
          }
    
          for(int k=1; k<=n; k++)
             for(int i=1; i<=n; i++)
                for(int j=1; j<=n; j++)
                   if(dp[i][k] && dp[k][j])
                      dp[i][j] = 1;
          int res = 0;
          for(int i=1; i<=n; i++)
          {
             int lose = 0 , win = 0;
             for(int k=1; k<=n; k++)
             {
                if(dp[k][i])
                   lose++;
                if(dp[i][k])
                   win++;
             }
             if(lose + win + 1 == n) res++;
          }
          printf("%d\n",res);
       }
       return 0;
    }
  • 相关阅读:
    触屏时间控制
    小程序 坐标算距离 (copy)
    微信小程序 对接口常用
    conversion function to_char to_number
    南通
    日期 function
    数字 function
    字符串处理函数
    沪通铁路1
    NVL NVL2 COALESCE NULLIF decode
  • 原文地址:https://www.cnblogs.com/scau20110726/p/3058554.html
Copyright © 2011-2022 走看看