zoj4028(差分約束)

2021-08-19 23:02:26 字數 922 閱讀 1454

題意:給你以i為結尾的最長上公升子串行的值,和每個值的區間範圍求可行的a【i】

題解:差分約束,首先滿足l[i]<=a[i]<=r[i],可以建乙個虛擬節點n+1,那麼有a[n+1]-a[i]<=-l[i],a[i]-a[n+1]<=r[i],同時當 (f[i]==f[j] && i

#include 

#include

#include

#include

#include

#include

using

namespace

std;

const

int maxn =100000+5;

const

int inf =0x3f3f3f3f;

long

long d[maxn];

int vis[maxn],head[maxn],last[maxn],k;

int t,n,l[maxn],r[maxn];

queue

q;void init()

struct edge

; edge(int v1,int w1,int next1)

}e[maxn*5];

void add_edge(int u, int v, int w)

void spfa()}}

}return;

}int main()

}for(int i=1; i<=n; i++)

spfa();

for(int i=1; i<=n; i++)

i==n? printf("%lld\n",d[i]):printf("%lld ",d[i]);

}return

0;}

zoj 3668 差分約束

題意 給定l,r a,b 表示序列從l到r的和 a b。並輸出序列最大的取值,誤解輸出 the spacecraft is broken 查分約束 u v 建條邊 則有dis v dis u w u,v 即dis v dis u w u,v sum r 表示0到r的和。則sum r sum l 1 ...

ZOJ1455差分約束

這題做了之後發現自己對差分約束好像終於懂了一點,開始看了roll神的做最長路才a掉 後來自己想了老半天想出來了最短路怎麼寫 最長路版 include include include include include include include include include include inc...

zoj 3668 差分約束

約束條件 f i 表示前i塊石頭的能量總和。f r f l 1 a f r f l 1 b f i f i 1 10000 f i f i 1 10000 關於為什麼是字典序。在網上看到如下 總結了一下,差分約束系統有兩個解決方案 1,最短路模型。所有的約束條件都是形如f x f y b,b正負不分...