小k在mc裡面建立很多很多的農場,總共n
n個,以至於他自己都忘記了每個農場中種植作物的具體數量了,他只記得一些含糊的資訊(共m
m個),以下列三種形式描述:
但是,由於小k的記憶有些偏差,所以他想要知道存不存在一種情況,使得農場的種植作物數量與他記憶中的所有資訊吻合。
顯然差分約束。
條件1 →a−
b≥c→
b+c≤
a→a−
b≥c→
b+c≤
a條件2 →a−
b≤c→
a−c≤
b→a−
b≤c→
a−c≤
b條件3 →a≤
b,b≤
a→a≤
b,b≤
a然後跑最長路,判正環即可。
#include
#include
#include
using
namespace std;
const
int n=
10010
;int n,m,x,y,z,tot,head[n]
,dis[n]
;bool vis[n]
;struct edge
e[n*3]
;void
add(
int from,
int to,
int dis)
bool
spfa
(int x)
//dfs版spfa
} vis[x]=0
;return1;
}int
main()
else
if(x==2)
else
}memset
(dis,
0xcf
,sizeof
(dis));
dis[0]
=0;if
(spfa(0
))puts
("yes");
else
puts
("no");
return0;
}
洛谷P1993 小K的農場 差分約束
對於n nn個物品,給出m mm個限制關係,分別是 1.a aa比b bb至少多種c cc單位的作物。2.a aa比b bb至多多種c cc單位的作物。3.a aa和b bb的作物數相等。求問是否滿足這樣的一種情形,符合所有的限制關係。不妨記f f f 表示 的作物數,顯然各條件等價於 1.f a ...
洛谷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 變成不等式就要同時滿足...