差分约束 做题笔记

基本思想就是想办法转换成为一个差分相减的形式,建立关系跑最短(长)路


 

P5960 【模板】差分约束算法-------------------------模板题 


 

P3275 [SCOI2011] 糖果 --------------------------------考察对于差分约束各种条件的建图,还有Tarjan缩点


 

P3530 [POI2012] FES-Festival------------------------基于floyed的差分约束


 

Intervals - SPOJ INTERVAL洛谷

转换关系为前缀和求解建图(比较巧妙)

这题因为 a b 可以为 0,又因为要满足 0 <= d[ i ] - d[ i-1 ] <= 1,那么可能 i - 1 会小于0

所以整体编号应该是加一的,因此本应该是连 x-1 --> y ,整体加一后就是连一条 x --> y+1


 

P2294 [HNOI2005] 狡猾的商人

转换为前缀和建图(设立一个超级源点,到各个1点连一条0的边)


 

P2474 [SCOI2008] 天平

构建差分关系建图(很巧妙),同时需要转换一下等式


 P4926 [1007] 倍杀测量者

二分+差分约束(每次二分重构一张图)

同时他的差分关系转化非常有意思,和高中数学某种做题技巧一模一样

转换:

 

 

  •  对于乘除想要转换成差分形式,可以取对数(log)

 


 [ABC216G] 01Sequence

前缀和建图,通过正难则反记录0的前缀和,将边权全部转换为正数,通过Dijkstra跑最短路求0的最大解,那么就可以转换为1的最小解


 

  • 特别注意对于a=b这种关系的建图
  • 应该要建两条边因为a=b拆成的是a<=b&&a>=b
posted @ 2023-08-01 14:03  zhujio  阅读(11)  评论(0编辑  收藏  举报