POJ3159差分約束(SPFA)

2021-06-26 22:01:56 字數 857 閱讀 4980

題意:

有一批糖果要由班長flymouse分發給班裡的小朋友,給出m對資料u,v,w,表示第u個小朋友不能比第v個小朋友少w個,但flymouse與snoopy不和,所以在滿足上述約束的條件下,flymouse要盡量比snoopy多。而對於其他小朋友而言,則只希望自己得到的糖果不少於班上某某其他人就行了。

分析:因此根據題意,可以列出如下的不等式:

sbi-sai<=ci(1=最終要使得sn-s1最大。求最短路時用到的三角形不等式中,最終對於每條有向邊(u,v)有: d[v]<=d[u]+w(u,v);

因此題目可以轉化為求最短路。

#include#includeconst int inf=0x3f3f3f3f;

const int v=30001;

const int e=150001;

int pnt[e],cost[e],nxt[e];

int e,head[v];

int dist[v];

bool vist[v];

int relax(int u,int v,int c)

return 0;

}void addedge(int u,int v,int c)

int spfa(int src,int n)

dist[src]=0;

int q[e],top=1;

q[0]=src;

vist[src]=true;

while(top)}}

return dist[n];

}int main()

printf("%d\n",spfa(1,n));

}return 0;

}

poj 3159 差分約束(分發糖果)

題意 flymouse是班長,由他來發糖果。flymouse希望自己的糖果數盡量多於snoopy。其他人必須使得自己的糖果不少於某某,給出m個這種約束關係 u,v,w 即u的糖果數不能比v的糖果數少w。問flymouse最多比snoopy多幾個糖果。思路 差分約束spfa。必須用棧 include ...

POJ 3159 Candies 差分約束

題目意思 flymouse是幼稚園班上的班長,一天老師給小朋友們買了一堆的糖果,由flymouse來分發,在班上,flymouse和snoopy是死對頭,兩人勢如水火,不能相容,因此fly希望自己分得的糖果數盡量多於 snoopy,而對於其他小朋友而言,則只希望自己得到的糖果不少於班上某某其他人就行...

POJ 3159 Candies 差分約束

poj 3159 n個點,每個點有權值p i 給出一些條件 即p j p i k,k 0。要求在滿足這些條件的情況下,求出p n p 1 的最大值。觀察最短路的性質,di st i di st j wt j,i 與p j p i k 形式很相似 di st i mi n p i m in這樣使p i...