• [Vijos1532]区间 (差分约束)


    又是一题我不会的模板题……

    讲一下差分约束吧

    差分约束

    参考博客

    如果一个系统由n个变量和m个约束条件组成,形成m个形如ai-aj≤k的不等式(i,j∈[1,n],k为常数),则称其为差分约束系统。——某百科

    说简单点吧

    就是两值相减 是差分

    相减得到的值在一个范围内 是约束

    大致是求解一些数学方程问题的

    本蒟蒻不会……

    大致好像是用最短路来做

    本蒟蒻不会最短路……

    不会差分约束……

    所以就很颓废了。

    本题

    [题目链接]

    我抄题解的

    太弱了

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<cstdlib>
    #include<queue>
    using namespace std;
    const int lim=50055;
    const int inf=999999999;
    int d[lim<<2];
    struct self{int x,y,w;}s[lim<<2];
    int first[lim<<2],nxt[lim<<2];
    int m,n,a,b,c,tn,x,y,w;
    queue<int>q;
    bool inq[lim];
    void add(int x,int y,int w)
    {
        n++;
        s[n].x=x;s[n].y=y;s[n].w=w;
        nxt[n]=first[x];first[x]=n;
    }
    void spfa()
    {
        int a,b;
        for(a=0;a<=m+1;a++)d[a]=-inf;
        d[0]=0;
        q.push(0);
        while(!q.empty())
        {
            int u=q.front();q.pop();inq[u]=0;
            for(int e=first[u];e!=-1;e=nxt[e])
            {
                if(d[s[e].y]<d[u]+s[e].w)
                {
                    d[s[e].y]=d[u]+s[e].w;
                    if(!inq[s[e].y])
                    {
                        q.push(s[e].y);
                        inq[s[e].y]=1;
                    }
                }
            }
        }
        cout<<d[m+1]<<endl;
    }
    int main()
    {
        memset(first,-1,sizeof(first));memset(nxt,-1,sizeof(nxt));
        scanf("%d",&tn);
        m=50000;
        for(a=1;a<=tn;a++)
        {
            scanf("%d%d%d",&x,&y,&w);
            x++;y++;
            m=max(m,x);m=max(m,y);
            add(x-1,y,w);
        }
        for(a=1;a<=m+1;a++)
        {
            add(a,a-1,-1);
            add(a-1,a,0);
        }
        spfa();
        return 0;
    }
  • 相关阅读:
    Maven:mvn 命令的基本使用
    Java:SPI机制
    Bootstrap3 排版-内联文本元素
    Bootstrap3 排版-页面主体
    Bootstrap3 排版-标题
    Bootstrap3 栅格系统-Less mixin 和变量
    Bootstrap3 栅格系统-列排序
    Bootstrap3 栅格系统-嵌套列
    Bootstrap3 栅格系统-列偏移
    Bootstrap3 栅格系统-实例:响应列重置(Responsive column resets)
  • 原文地址:https://www.cnblogs.com/lincold/p/9799807.html
Copyright © 2020-2023  润新知