zoukankan      html  css  js  c++  java
  • 拓扑排序 POJ 2367

    今天网易的笔试,妹的,算法题没能A掉,虽然按照思路写了出来,但是尼玛好歹给个测试用例的格式呀,吐槽一下网易的笔试出的太烂了。

    就一道算法题,比较石子重量,个人以为解法应该是拓扑排序。

    就去POJ找了道拓扑排序的题:POJ2367

    直接上代码吧:

    #include<stdio.h>
    #include<string>
    #define clr(x) memset(x,0,sizeof(x))
    
    int g[101][102];
    int indegree[102];
    int res[102];
    using namespace std;
    
    int main()
    {
        int n,p,top;
        while(scanf("%d",&n)!=EOF)
        {
            clr(g);
            clr(indegree);
            for(int i=1;i<=n;i++)
            {
                while(scanf("%d",&p),p)
                {
                    g[i][p] = 1;
                    indegree[p]++;
                }
            }
            top = 0;
            for(int i=1;i<=n;i++)
            {
                for(int j=1;j<=n;j++)
                {
                    if(indegree[j] == 0)
                    {
                        res[top++] = j;
                        indegree[j] = -1;
                        for(int k=1;k<=n;k++)
                            if(g[j][k]==1)
                                indegree[k] -- ;
                        break;
                    }
                }
            }
            for(int i=0;i<top;i++)
            {
                printf("%d%c",res[i],i==top-1?'
    ':' ');
            }
        }
        return 0;
    }
  • 相关阅读:
    tp 30秒超时
    zend studio git 提示错误
    php连接数据库
    php点击排序
    表情符号解析
    js Object.assign 方法
    Web界面简繁体转换
    H5骨架屏实战
    JavaScript heap out of memory问题
    Vue bus插件封装
  • 原文地址:https://www.cnblogs.com/yueyanglou/p/5309175.html
Copyright © 2011-2022 走看看