洛谷 P1993 小 K 的農場

2022-06-15 11:54:11 字數 1093 閱讀 8367

據說這個題卡常?有什麼關係,反正我用差分約束(

1:a-b>=c

2:a-b<=c

3:a=b

看起來已經很明顯了呢

我們跑最短路,再來轉換一下……

1:b<=a+-c

2:a<=b+c

3:a=b

啊更明顯了!所以我們直接建圖,然後打一遍板子這題就過了

當你覺得你可以秒掉這個題的時候,生活會給你重重一擊,並告訴你,「你**有bug~看不出來的那種~」

emm寫碼5分鐘除錯兩小時。

在這裡我還要提醒一下很容易錯的幾點(應該只有我錯了)

不要把路徑的起點和終點搞反

不要把鏈式前向星的遍歷寫錯

不要把兩個不同型別的變數來運算

好了真的結束了,這個題是裸裸的差分約束,真的除了建圖和板子沒區別……

#include#include#includeusing namespace std;

long long n,m,a,b,c,s;

queueq;

struct hehe

lsqxx[12005];

long long head[7005],ans;

void add(long long t,long long w,long long cd)//鏈式前向星存圖

long long wz,bj[7005],zx[7005],cs[7005];

bool hs()

zx[0]=0;

while(q.empty()!=true)

if(bj[lsqxx[i].w]==0)

}} }

return true;

}int main()

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

else if(s==2)

else if(s==3)

}q.push(0);//0是超級原點

if(hs()==false)//不可能的

{ cout<

好了做完了……

洛谷P1993 小K的農場

小k在mc裡面建立很多很多的農場,總共n個,以至於他自己都忘記了每個農場中種植作物的具體數量了,他只記得一些含糊的資訊 共m個 以下列三種形式描述 但是,由於小k的記憶有些偏差,所以他想要知道存不存在一種情況,使得農場的種植作物數量與他記憶中的所有資訊吻合。輸入格式 第一行包括兩個整數 n 和 m,...

洛谷P1993 小K的農場

這道題的實質是差分約束。我們逐個分析。設 a 農場中有 d a 個單位植物,b 農場為 d b 對於第一點,則滿足 d a d b geq c 變形下就變成 d b d a leq c 對於第二點 d a d b leq c 對於第三點 d a d b 即 d a d b 0 變成不等式就要同時滿足...

洛谷 P1993 小K的農場

小k在mc裡面建立很多很多的農場,總共n個,以至於他自己都忘記了每個農場中種植作物的具體數量了,他只記得一些含糊的資訊 共m個 以下列三種形式描述 但是,由於小k的記憶有些偏差,所以他想要知道存不存在一種情況,使得農場的種植作物數量與他記憶中的所有資訊吻合。輸入格式 第一行包括兩個整數 n 和 m,...