• hdu 1531 King


    首先吐槽一下这个题目的题意描述,我看了半天才明白。 下标全部都是乱标的!!!!出题者能不能规范一点下标的写法!!!!

    差分约束系统

    #include<cstdio>
    #include<cstring>
    #include<cmath>
    #include<vector>
    #include<queue>
    #include<algorithm>
    using namespace std;
    
    int n,m,tyu;
    const int maxn=111;
    const int INF=0x7FFFFFFF;
    struct abc
    {
        int startt;
        int endd;
        int costt;
    } node[maxn];
    vector<abc>ljb[maxn];
    int ff[maxn],summ[maxn],dist[maxn];
    
    void spfa()
    {
        queue<int>Q;
        while(!Q.empty()) Q.pop();
        int i;
        for(i=0; i<=n+5; i++) dist[i]=INF;
        memset(ff,0,sizeof(ff));
        memset(summ,0,sizeof(summ));
        dist[0]=0;
        ff[0]=1;
        Q.push(0);
        while(!Q.empty())
        {
            int hh=Q.front();
            Q.pop();
            summ[hh]++;
            if(summ[hh]>n+1)
            {
                tyu=1;
                break;
            }
            ff[hh]=0;
            for(i=0; i<ljb[hh].size(); i++)
            {
                abc noww;
                noww=ljb[hh][i];
                if(dist[hh]+noww.costt<dist[noww.endd])
                {
                    dist[noww.endd]=dist[hh]+noww.costt;
                    if(ff[noww.endd]==0)
                    {
                        ff[noww.endd]=1;
                        Q.push(noww.endd);
                    }
                }
            }
        }
    }
    int main()
    {
        int i,si,ni,ki,tott;
        char oi[5];
        while(~scanf("%d",&n))
        {
            if(n==0) break;
            scanf("%d",&m);
            tott=0;
            for(i=0; i<=n+5; i++) ljb[i].clear();
            for(i=0; i<m; i++)
            {
                scanf("%d%d%s%d",&si,&ni,oi,&ki);
                if(strcmp("lt",oi)==0)
                {
                    node[tott].startt=si;
                    node[tott].endd=si+ni+1;
                    node[tott].costt=ki-1;
                    ljb[si].push_back(node[tott]);
                    tott++;
                }
                else if(strcmp("gt",oi)==0)
                {
                    node[tott].startt=si+ni+1;
                    node[tott].endd=si;
                    node[tott].costt=-(ki+1);
                    ljb[si+ni+1].push_back(node[tott]);
                    tott++;
                }
            }
            for(i=1; i<=n+1; i++)
            {
                node[tott].startt=0;
                node[tott].endd=i;
                node[tott].costt=0;
                ljb[0].push_back(node[tott]);
                tott++;
            }
            tyu=0;
            spfa();
            if(tyu==1) printf("successful conspiracy
    ");
            else printf("lamentable kingdom
    ");
        }
        return 0;
    }
  • 相关阅读:
    约束
    TCL(事务控制语言)
    MySQL常见约束
    “三大范式”及数据库设计
    同义词(别名)
    分享35个非常漂亮的单页网站设计案例
    Eclipse智能提示 (原创)
    java架构师之路:JAVA程序员必看的15本书的电子版下载地址
    Java初级学习笔记
    Java程序的汉化
  • 原文地址:https://www.cnblogs.com/zufezzt/p/4567684.html
Copyright © 2020-2023  润新知