差分约束
酷酷的Herio
这个作者很懒,什么都没留下…
展开
-
POJ.1201 Intervals(区间约束)
POJ.1201 Intervals(区间约束) 思路:区间约束问题,转最长路跑spfaspfaspfa,注意区间是[0,50000][0,50000][0,50000]。但是我们连边是add(u−1,v,w)add(u-1,v,w)add(u−1,v,w),所以考虑整体右移一位,然后从000开始跑,此外还有一个限制是: d[v]−d[v−1]∈[0,1]d[v]-d[v-1]\in[0,1]d[v]−d[v−1]∈[0,1]。 再每次构建两条边即可。 #include<iostream> #i原创 2020-07-23 10:28:10 · 305 阅读 · 0 评论 -
P5960 【模板】差分约束算法(spfa)
P5960 【模板】差分约束算法(spfa) 思路:考虑转化为最短路跑spfaspfaspfa,因为本题只需求出可行解,所以判一下负环即可,另外注意我们需要建立一个超级源点从000连边开始跑,因为图可能是不能连通的,若从111跑可能会不能得到所有点的答案,所以从000开始跑能有效地避免不连通的情况。 #include<iostream> #include<cstdio> #include<cstring> #include<queue> #include<原创 2020-07-23 09:00:55 · 406 阅读 · 0 评论 -
P4878 [USACO05DEC]Layout G(差分约束&最短路)
P4878 [USACO05DEC]Layout G(差分约束&最短路) 思路: 差分约束转最短路。 此题关键是建图和特判。 建图: 因为是求max(d[n]−d[1])→d[n]−d[1]≤ansmax(d[n]-d[1])\rightarrow d[n]-d[1]\leq ansmax(d[n]−d[1])→d[n]−d[1]≤ans,ansansans是我们要求的答案,即我们需要让ansansans最小化,这与最短路中若:d[v]>d[u]+w→d[v]=d[u]+w若:d[v]&g原创 2020-07-22 23:07:21 · 379 阅读 · 0 评论