zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Ubuntu 14.04 LTS 安装 NVIDIA 显卡驱动后的屏幕亮度调节问题
    算法算法算法
    Java transient关键字
    使用git和github管理自己的项目---基础操作学习[转]
    Linux 查看系统硬件信息[转]
    实现Servlet容器一
    nginx入门三
    nginx入门二
    nginx入门一
    centos7入门
  • 原文地址:https://www.cnblogs.com/lijianlin1995/p/3386368.html
Copyright © 2011-2022 走看看