hdu 1384 spfa 差分約束

2021-08-26 13:58:49 字數 823 閱讀 9548

可能是因為太累了吧,早上6點睡的,spfa居然乙個vis陣列敲錯了!!!wa了好久。。。。**還是要多敲。。。細心+冷靜

這題是差分約束題,一般的差分約束是先轉換為圖,然後用spfa求其中的最短路~

**長的一b,沒怎麼看,我自己試著搞了搞,同樣的把這些不等式轉換為圖,然後求的不是最短路而是最長路~~~而且我的圖里的權值除了回來的那條路是 -1 其餘的都是正的,這樣的話更好理解~~

#include#include#include#include#include#include#include#include#includeusing namespace std;

const int maxn=51111;

struct zz

}zx,tz;

vectorg[maxn];

vectorv;

queueq;

bool vis[maxn];

int n,rend,now,temp,tcost;

int s[maxn];

void init()

void initg()

return ;

}void build()

}}

vis[now]=false;

}return s[rend];

}int main()

zx.from++;

zx.to++; //把範圍控制在1到+oo

if(zx.to > rend)

v.push_back(zx);

}

initg();

build();

cout<

HDU 1384 差分約束

要求選取乙個最小的集合,集合中的數滿足n個條件,每個條件 在區間 ai,bi 內至少有ci個數備選在了集合裡。差分約束,設sum i 表示在i 1中選取到集合中的數的個數,那麼題目的要求就可以描述為如下的關係 sum a sum b 1 c sum i sum i 1 0 sum i 1 sum i...

hdu 1384 Intervals (差分約束)

problem 1384 好歹用了一天,也算是看懂了差分約束的原理,做出第一條查分約束了。題意是告訴你一些區間中最少有多少元素,最少需要多少個元素才能滿足所有要求。構圖的方法是,a b 1 c。還有就是所有的相鄰的點都要連上 i 1 i 0,i i 1 1。因為我對點離散了,所以就變成 rx i r...

設計 SPFA 差分約束

有n nn頭牛,現在要設計乙個順序讓他們站成一排給他們餵食。奶牛們按照編號順序依次站立,允許有多隻牛站在同一位置。有一些牛希望之間的距離在某個範圍內,也有一些牛希望兩之間的距離大於等於某個距離。如果存在某種方案滿足上述要求,請你輸出1 11號牛和n nn號牛之間最大距離。i np ut input ...