zoukankan      html  css  js  c++  java
  • zoj2770差分约束

    #include<stdio.h>
    #include<iostream>
    #include<string.h>
    #include<queue>
    #include<stack>
    #include<list>
    #include<stdlib.h>
    #include<algorithm>
    #include<vector>
    #include<map>
    #include<set>
    #include <fstream>
    using namespace std;
    const int maxn=1111;
    
    int head[maxn];
    int len;
    struct Node
    {
        int to;int val;int next;
    }e[1111111];
    
    void add(int from,int to,int val)
    {
        e[len].to=to;e[len].val=val;
        e[len].next=head[from];
        head[from]=len++;
    }
    int vis[maxn];
    int dis[maxn];
    int cnt[maxn];
    int n,m;
    const int INF=0xfffffff;
    int spfa(int x)
    {
        for(int i=0;i<=n;i++){
            dis[i]=INF;vis[i]=0;
        }
        dis[x]=0;vis[x]=1;
        queue<int> q; q.push(x);
        cnt[x]++;
        while(!q.empty()){
            int cur=q.front();
            q.pop();vis[cur]=0;
            for(int i=head[cur];i!=-1;i=e[i].next){
                int cc=e[i].to;
                if(dis[cc]>dis[cur]+e[i].val){
                    dis[cc]=dis[cur]+e[i].val;
                    if(!vis[cc]){
                        vis[cc]=1;cnt[cc]++;if(cnt[cc]>n) return 0;
                     //   cout<<cc<<" "<<cnt[cc]<<endl;system("pause");
                        q.push(cc);
                    }
                }
            }
        }
        return 1;
    }
    
    int main()
    {
        while(cin>>n>>m){
            memset(head,-1,sizeof(head));
            memset(cnt,0,sizeof(cnt));
            len=0;
            for(int i=1;i<=n;i++){
                int a;cin>>a;
                add(i-1,i,a);
                add(i,i-1,0);
            }
            for(int i=0;i<m;i++){
                int a;int b;int c;
                cin>>a>>b>>c;
                add(b,a-1,-c);
            }
            int t=spfa(n);
            if(!t) cout<<"Bad Estimations"<<endl;
            else cout<<-dis[0]<<endl;
        }
        return 0;
    }
  • 相关阅读:
    javascript运算符
    javascript字符串转数字
    javascript的变量声明和数据类型
    javascript的历史和入门
    CSS中定位
    CSS中盒子模型
    CSS操作表格的边框和表格的属性示例代码
    常用的CSS样式示例代码
    CSS伪类选择器
    CSS选择器
  • 原文地址:https://www.cnblogs.com/yigexigua/p/3849599.html
Copyright © 2011-2022 走看看