小K的農場

2021-09-26 22:42:36 字數 1264 閱讀 1776

小k在mc裡面建立很多很多的農場,總共n個,以至於他自己都忘記了每個農場中種植作物的具體數量了,他只記得一些含糊的資訊(共m個),以下列三種形式描述:

農場a比農場b至少多種植了c個單位的作物,

農場a比農場b至多多種植了c個單位的作物,

農場a與農場b種植的作物數一樣多。

但是,由於小k的記憶有些偏差,所以他想要知道存不存在一種情況,使得農場的種植作物數量與他記憶中的所有資訊吻合。

輸入格式

第一行包括兩個整數 n 和 m,分別表示農場數目和小 k 記憶中的資訊數目。

接下來 m 行:

如果每行的第乙個數是 1,接下來有 3 個整數 a,b,c,表示農場 a 比農場 b 至少多種植了 c 個單位的作物。

如果每行的第乙個數是 2,接下來有 3 個整數 a,b,c,表示農場 a 比農場 b 至多多種植了 c 個單位的作物。如果每行的第乙個數是 3,接下來有 2 個整數 a,b,表示農場 a 種植的的數量和 b 一樣多。

輸出格式

如果存在某種情況與小 k 的記憶吻合,輸出「yes」,否則輸出「no」。

輸入輸出樣例

輸入 #1

3 33 1 2

1 1 3 1

2 2 3 2

輸出 #1

yes說明/提示

對於 100% 的資料保證:1 ≤ n,m,a,b,c ≤ 10000。..

...分析

差分約束

用dfs模擬spfa..

....

程式:

#include#include#includeusing namespace std;

int head[100000],cnt=0,dis[20000];

bool f[100000];

struct edge

t[100000];

void add(int x,int y,int z)

bool spfa(int x)

} f[x]=false;

return true;

}int main()

else

if (w==2)

else

if (w==3)

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

if (spfa(0)==false) printf("no"); else printf("yes");

return 0;

}

3436 小K的農場

time limit 10 sec memory limit 128 mb submit 1200 solved 521 submit status discuss 背景 小k是個特麼喜歡玩mc的孩紙。描述 小k在mc裡面建立很多很多的農場,總共n個,以至於他自己都忘記了每個農場中種植作物的具體數量...

小K的農場 差分約束

description背景 小k是個特麼喜歡玩mc的孩紙。描述小k在mc裡面建立很多很多的農場,總共n個,以至於他自己都忘記了每個農場中種植作物的具體數量了,他只記得一些含糊的資訊 共m個 以下列三種形式描述 農場a比農場b至少多種植了c個單位的作物,農場a比農場b至多多種植了c個單位的作物,農場a...

BZOJ3436 小K的農場

差分約束系統。分析一下三種情況 1.農場a aa比農場b bb至少多種植了c cc個單位的作物 即a b c b a ca geq b c b leq a c a b c b a c,a aa向b bb連一條長度為 c c c的單向邊。2.農場a aa比農場b bb至多多種植了c cc個單位的作物。...