• 查分约束


    #include<bits/stdc++.h>
    using namespace std;
    #define N 11222
    #define inf 1e15
    #define ll long long
    #define go(i,a,b) for(int i=a;i<=b;i++)
    int T,n,m,A,B,C,D,head[N],tot,inque[N],cas;
    struct node
    {
        int v,to;
        ll w;
    } edge[N*2];
    void add(int u,int v,ll w){
        edge[++tot]= {v,head[u],w};head[u]=tot;
    }
    bool vis[N];
    ll X,dis[N];
    bool SPFA()
    {
        go(i,1,n)vis[i]=inque[i]=0,dis[i]=-inf;
        queue<int>q;
        while(!q.empty())q.pop();
        q.push(1);
        vis[1]=inque[1]=1;
        dis[1]=0;
        while(!q.empty()){
        int u=q.front();
        q.pop();vis[u]=0;
        for(int i=head[u];i!=-1;i=edge[i].to){
        int v=edge[i].v;
        ll w=edge[i].w;
        if(dis[v]<dis[u]+w&&dis[u]+w>0)
        {
        dis[v]=dis[u]+w;
        if(!vis[v]){
        vis[v]=1;
        if(++inque[v]>=n)return 0;
        q.push(v);
        }
        }
        }
        }
        return 1;
    }
    int main()
    {
        scanf("%d",&T);
        while(T--)
        {
            tot=0;
            scanf("%d%d%lld",&n,&m,&X);
            go(i,1,n)head[i]=-1;
            go(i,1,n-1)add(i,i+1,1);
            go(i,1,m){
            scanf("%d%d%d%d",&A,&B,&C,&D);
                if(A==B&&C==D)
                {
                    add(A,D,X);
                    add(C,B,-X);
                }
                else {
                    if(A==C&&B==D)
                    {
                        add(A,D,X+1);
                    }
                    else {
                        add(A,D,X+1);
                        add(C,B,-X+1);
                    }
                }
            }
            printf("Case #%d: ",++cas);
            if(SPFA()==0)printf("IMPOSSIBLE
    ");
            else {
            for(int i=2;i<=n;i++)printf("%lld%c",dis[i]-dis[i-1],i==n?'
    ':' ');
            }
        }
        return 0;
    }
    

      

  • 相关阅读:
    [Shoi2007]Vote 善意的投票
    [CQOI2015]任务查询系统
    [SDOI2013]森林
    HttpClient 教程 (二)
    /system改成可写
    Netbeans 6.8 + apktool_2.0.0b9 动态调试smali文件
    把中文版NetBeans改成英文版
    ZjDroid工具介绍及脱壳详细示例
    grep过滤搜索
    android Log图文详解(Log.v,Log.d,Log.i,Log.w,Log.e)
  • 原文地址:https://www.cnblogs.com/SDUTNING/p/11558840.html
Copyright © 2020-2023  润新知