zoukankan      html  css  js  c++  java
  • hdu 1384 Intervals 差分约束系统

    注意初始化

    #include "stdio.h"
    #include "string.h"
    #include "algorithm"
    #include "queue"
    #include "vector"
    using namespace std;
    const int inf=0x7FFFFFFF;
    struct node
    {
        int to;
        int c;
    };
    int d[50005],inq[50005];
    vector<node>t[50005];
    queue<int>q;
    
    int main()
    {
        int i,n,u,v,w,k,mx,mn;
        node m;
        while(~scanf("%d",&n))
        {
            for(i=0;i<50005;i++)
            {
                t[i].clear();
                d[i]=-inf;
                inq[i]=0;
            }
    
            while(!q.empty()) q.pop();
            mx=0;mn=99999;
            for(i=0;i<n;i++)
            {
                scanf("%d%d%d",&u,&v,&w);
                m.to=v+1;
                m.c=w;
                t[u].push_back(m);
                if(mx<v) mx=v;
                if(mn>u) mn=u;
            }
    
            for(i=mn;i<=mx;i++)
            {
                m.to=i;
                m.c=-1;
                t[i+1].push_back(m);
    
                m.to=i+1;
                m.c=0;
                t[i].push_back(m);
            }
            d[mn]=0;
            inq[mn]=1;
            q.push(mn);
            while(!q.empty())
            {
                u=q.front();
                q.pop();
                inq[u]=0;
                for(i=0;i<t[u].size();i++)
                {
                    v=t[u][i].to;
                    k=t[u][i].c+d[u];
    
                    if(d[v]<k)
                    {
                        d[v]=k;
                        if(inq[v]==0)
                        {
                            inq[v]=1;
                            q.push(v);
                        }
                    }
                }
            }
    
            printf("%d
    ",d[mx+1]);
        }
        return 0;
    }
    #include "stdio.h"
    #include "string.h"
    #include "algorithm"
    #include "queue"
    #include "vector"
    using namespace std;
    const int inf=0x7FFFFFFF;
    struct node
    {
        int to;
        int c;
    };
    int d[50005],inq[50005];
    vector<node>t[50005];
    queue<int>q;
    
    int main()
    {
        int i,n,u,v,w,k,mx,mn;
        node m;
        while(~scanf("%d",&n))
        {
            for(i=0;i<50005;i++)
            {
                t[i].clear();
                d[i]=inf;
                inq[i]=0;
            }
    
            while(!q.empty()) q.pop();
            mx=0;mn=99999;
            for(i=0;i<n;i++)
            {
                scanf("%d%d%d",&u,&v,&w);
                m.to=u;
                m.c=-w;
                t[v+1].push_back(m);
                if(mx<v) mx=v;
                if(mn>u) mn=u;
            }
    
            for(i=mn;i<=mx;i++)
            {
                m.to=i+1;
                m.c=1;
                t[i].push_back(m);
    
                m.to=i;
                m.c=0;
                t[i+1].push_back(m);
            }
    
            inq[mx+1]=1;
            d[mx+1]=0;
            q.push(mx+1);
            while(!q.empty())
            {
                u=q.front();
                q.pop();
                inq[u]=0;
                for(i=0;i<t[u].size();i++)
                {
                    v=t[u][i].to;
                    k=t[u][i].c+d[u];
    
                    if(d[v]>k)
                    {
                        d[v]=k;
                        if(inq[v]==0)
                        {
                            inq[v]=1;
                            q.push(v);
                        }
                    }
                }
            }
    
            printf("%d
    ",-d[mn]);
        }
        return 0;
    }

    版权声明:本文为博主原创文章,未经博主允许不得转载。http://xiang578.top/

  • 相关阅读:
    html float
    HTML:scrollLeft,scrollWidth,clientWidth,offsetWidth之完全详解
    FLEX 如何跳出警告对话框 Alert
    点击超链接,不改变滚动条位置
    HTML DOM CSS position的用法
    FLEX 动态添加事件
    html display
    php和swf通信
    html css float left与 float right的使用说明
    如何去除FLEX LINECHART 线条阴影
  • 原文地址:https://www.cnblogs.com/xryz/p/4847876.html
Copyright © 2011-2022 走看看