zoukankan      html  css  js  c++  java
  • poj-3660-cows contest(不懂待定)

    Description

    N (1 ≤ N ≤ 100) cows, conveniently numbered 1..N, are participating in a programming contest. As we all know, some cows code better than others. Each cow has a certain constant skill rating that is unique among the competitors.

    The contest is conducted in several head-to-head rounds, each between two cows. If cow A has a greater skill level than cow B (1 ≤ AN; 1 ≤ BN; AB), then cow A will always beat cow B.

    Farmer John is trying to rank the cows by skill level. Given a list the results of M (1 ≤ M ≤ 4,500) two-cow rounds, determine the number of cows whose ranks can be precisely determined from the results. It is guaranteed that the results of the rounds will not be contradictory.

    Input

    * Line 1: Two space-separated integers: N and M
    * Lines 2..M+1: Each line contains two space-separated integers that describe the competitors and results (the first integer, A, is the winner) of a single round of competition: A and B

    Output

    * Line 1: A single integer representing the number of cows whose ranks can be determined
     

    Sample Input

    5 5
    4 3
    4 2
    3 2
    1 2
    2 5
    分析:有人说叫闭包传递。这题就是用一种类似于floyd的算法,
    开始时,如果a胜b则由a到b连一条边。这样所有a能走到的点都是排名在a以后的。
    所有能走到a的点都是排名在a以前的。用floyd,求出每个点能到达的点。
    如果有一个点,排名在它之前的和排名在它之后的点之和为n-1,那么它的排名就是确定的。

    #include<iostream> using namespace std ; int main() { int N,M,a,b; cin>>N>>M; int aa[110][110]={0}; while(M--) { cin>>a>>b; aa[a][b]=1; } for(int i=1;i<=N;i++) for(int j=1;j<=N;j++) for(int k=1;k<=N;k++) { if(aa[j][i]&&aa[i][k]) aa[j][k]=1; } int ans=0; for(int i=1;i<=N;i++) { int tmp=0; for(int j=1;j<=N;j++) tmp+=aa[i][j]+aa[j][i]; if(tmp==N-1)ans++; } cout<<ans<<endl; return 0; }

      

  • 相关阅读:
    java基础 01
    c++11——模板的细节改进
    c++11——auto,decltype类型推导
    poj_1182 并查集
    poj_1988 并查集
    poj_1161 并查集
    poj_3067 树状数组
    poj_2182 线段树/树状数组
    poj_1190 树状数组
    动态规划
  • 原文地址:https://www.cnblogs.com/jin-nuo/p/5307584.html
Copyright © 2011-2022 走看看