• poj 1716 1201 差分约束 SPFA


    poj 1716 Integer Intervals     

          因为没提无解,就当是保证有解吧。为了方便,先把点的标号都加一。约束条件有三个。

          (1)题目对区间的要求用前缀和表示  S[b+1]-s[a]>=2

          (2)前缀和本身隐含一个约束条件     S[i]-S[i-1]>=0

          (3)一个数字只取一次                     S[i]-S[i-1]<=1

          因为我想用SPFA求最短路,所以把不等式全部变形为 S[x]-S[y]<=C 的形式,从y向x连一条边权为C的边。输出那段随便写的,还没想,为什么(dis[maxn]-dis[0])和(dis[t]-dis[s])之间有矛盾。

          一点关于差分约束的想法,首先要确定使用求最长路还是最短路算法,如果用最短路算法,松弛操作对于边(v,u)有dis[u]=min(dis[u],dis[v]+w),所以算法结束后一点有dis[u]<=dis[v]+w,即dis[u]-dis[v]<=w。就是说求其他点到其实点满足约束条件最小值,应该把约束条件写成<=形式,求最短路。求指正。

    Code

    poj 1201 Intervals

          贴代码

    Code

  • 相关阅读:
    go基础_defer
    go基础_函数
    go基础_控制语句
    go基础_数组
    go基础_切片
    go命令行参数
    Hdu2795Billboard线段树
    Hdu1394Minimum Inversion Number线段树
    Hdu1754单点更新
    Hdu1166单点更新线段树
  • 原文地址:https://www.cnblogs.com/lijianlin1995/p/3386368.html
Copyright © 2020-2023  润新知