zoukankan      html  css  js  c++  java
  • luogu p2149 [USACO08JAN]牛大赛Cow Contest

    原题链接:https://www.luogu.org/problem/show?pid=2419

    这个题看一眼数据范围,100,嗯。。。。。。n^3做法,想了想会的算法,Floyd(太弱不会别的算法)。

    luogu的题解,很多人直接写了考虑边权的Floyd,而这道题,我们只需要考虑两点之间能否到达就可以了,也就是说e其实可以开成bool数组。

    与Floyd一样,枚举中间点与两个点,如果i能到达k,k能到达j,那么i也能到达j。

    然后遍历e数组,检查各点能到达的点的数目,如果为n-1(自己不算),那么该点就能确定了。

    非边权的写法优点:无需预处理填充无限大值,无需考虑大小问题。但是只适用于只考虑能否到达的问题。

    #include<cstdio>
    int e[105][105],s[105],n,m,x,y,ans;
    int main()
    {
        scanf("%d %d",&n,&m);
        for(int i=1;i<=m;i++)
        {
            scanf("%d %d",&x,&y);
            e[x][y]=1;
        }
        for(int k=1;k<=n;k++)
        {
            for(int i=1;i<=n;i++)
            {
                for(int j=1;j<=n;j++)
                {
                    if(e[i][k]&&e[k][j]) e[i][j]=1;
                }
            }
        }
        for(int i=1;i<=n;i++)
        {
            for(int j=1;j<=n;j++)
            {
                if (e[i][j])
                {
                    s[i]++;
                    s[j]++;
                }
            }
        }
        for(int i=1;i<=n;i++) if(s[i]==n-1) ans++;
        printf("%d",ans);
        return 0;
    }
  • 相关阅读:
    git上传
    #if debug 模式
    .net core 获取appsetting配置信息
    映射的问题
    net core 支付宝回调参考
    .net core 3.1开发遇到的问题
    .net core 中对象转json以及反序列化
    auotmapper在net core 3.1的使用
    net core 3.1 webapi的开发遇到的问题
    OCP prepare 20140703
  • 原文地址:https://www.cnblogs.com/zeroform/p/7552830.html
Copyright © 2011-2022 走看看