zoukankan      html  css  js  c++  java
  • luogu_P1993 小K的农场

    传送门:https://www.luogu.org/problem/P1993

    查分约束:

    对于条件1:d[a]-d[b]>=c

           d[a]>=d[b]+c

    对于条件2:d[a]-d[b]<=c

              d[b]>=d[a]-c

    对于条件3:d[a]>=d[b]

              d[b]>=d[a]

    愉快的建边,我的跑最长路,您也可以跑最短路。

    本人sq把add写错了TAT

    还有就是这道题卡广搜spfa

    需要用深搜来实现,所以看(chao)了一下题解的写法......不能说明什么,只能说明我太弱了。

    #include<cstdio>
    #include<algorithm>
    #include<cstring>
    #include<queue>
    #define R register
    using namespace std;
    int n,m,head[12000],tot,ver[41000],nex[41000],cost[41000];
    inline void add(int x,int y,int z){
        ver[++tot]=y;nex[tot]=head[x];cost[tot]=z;head[x]=tot;
    }
    bool v[12000];
    int d[12000],cnt[12000];
    inline bool spfa(int x){
            v[x]=1;
            for(R int i=head[x];i;i=nex[i]){
                if(d[ver[i]]<d[x]+cost[i]){
                    d[ver[i]]=d[x]+cost[i];
                    if(v[ver[i]]) return 0;
                    if(!spfa(ver[i])) return 0;
                }
            }
        v[x]=0;
        return 1;
    }
    int main (){
        scanf("%d%d",&n,&m);
        for(R int op,x,y,z,i=1;i<=m;i++){
            scanf("%d%d%d",&op,&x,&y);
            // longest
            if(op==1){
                scanf("%d",&z);
                add(y,x,z);
            }
            else if(op==2){
                scanf("%d",&z);
                add(x,y,-z);
            }
            else if(op==3){
                add(x,y,0);add(y,x,0);
            }
        }
        for(R int i=1;i<=n;i++){
            add(0,i,0);d[i]=-1e9;
        }
        if(spfa(0)) printf("Yes
    ");
        else printf("No
    ");
        return 0;
    }
    View Code
  • 相关阅读:
    Single Page Application
    ES6数组方法
    localStorage 和 sessionStorage
    border-color:transparent;
    自适应屏幕高度铺满全屏
    href="#"与javascript:void(0)的区别
    图片模式CMYK和RGB在浏览器下的变化
    IE css HACK
    z-index只能用在定位元素上
    mysql锁机制之间隙锁(Next-Key锁)(五)
  • 原文地址:https://www.cnblogs.com/coclhy/p/11697010.html
Copyright © 2011-2022 走看看