zoukankan      html  css  js  c++  java
  • poj3660

    题意:牛之间有绝对的强弱,给出一些胜负关系,问有多少头牛可以确定其绝对排名。

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

    View Code
    #include <iostream>
    #include
    <cstdio>
    #include
    <cstdlib>
    #include
    <cstring>
    using namespace std;

    #define maxn 106

    int n, m;
    bool g[maxn][maxn];

    int main()
    {
    //freopen("t.txt", "r", stdin);
    scanf("%d%d", &n, &m);
    memset(g,
    0, sizeof(g));
    for (int i = 0; i < m; i++)
    {
    int a, b;
    scanf(
    "%d%d", &a, &b);
    g[a][b]
    = true;
    }
    for (int i = 1; i <= n; i++)
    for (int j = 1; j <= n; j++)
    for (int k = 1; k <= n; k++)
    if (g[j][i] && g[i][k])
    g[j][k]
    = true;
    int ans = 0;
    for (int i = 1; i <= n; i++)
    {
    int temp = 0;
    for (int j = 1; j <= n; j++)
    temp
    += g[i][j] + g[j][i];
    if (temp == n - 1)
    ans
    ++;
    }
    printf(
    "%d\n", ans);
    return 0;
    }
  • 相关阅读:
    11.6八校联考T1,T2题解
    NOIP2014解方程
    luogu P2107 小Z的AK计划
    差分及树上差分学习笔记
    Noip2015提高组解题报告
    日常个人训练计划
    dij 费用流
    哈尔滨站总结
    SOSdp
    2018-2019 ACM-ICPC Southeastern European Regional Programming Contest (SEERC 2018)
  • 原文地址:https://www.cnblogs.com/rainydays/p/2117623.html
Copyright © 2011-2022 走看看