• 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/

  • 相关阅读:
    也用一下Windows Live Writer
    常用16种iOS视图切换动画
    iPad平板电脑程序开发基础规则(源址:http://www.cocoachina.com/bbs/simple/?t82559.html)
    NSXMLParser详解
    UIScrollView用法
    使用UIActivityIndicatorView 和多线程
    为视图加边框
    iPhone SDK开发基础之iPhone程序框架
    NSXMLParser详解(事例)
    iOS开发 小知识点
  • 原文地址:https://www.cnblogs.com/xryz/p/4847876.html
Copyright © 2020-2023  润新知