小k在mc裡面建立很多很多的農場,總共n個,以至於他自己都忘記了每個農場中種植作物的具體數量了,他只記得一些含糊的資訊(共m個),以下列三種形式描述:
但是,由於小k的記憶有些偏差,所以他想要知道存不存在一種情況,使得農場的種植作物數量與他記憶中的所有資訊吻合。
1<=n,m<=1e4
在差分約束系統中,
最長路無正環才有解,最短路無負環才有解,聯絡不等式性質顯然
安利一波國家集訓隊**2009姜碧野《spfa演算法的優化及應用》
知道有個dfs優化的spfa就好了,比常規spfa表現好,雖然也可以被惡意卡
最長路,遞迴搜,判有無正環,無正環才有解
建乙個0的虛點,和所有點相連,從而保證整張圖連通
洛谷的題目,時限卡得太嚴了qaq
//x>=y+z y->x連z的邊 跑最長路 這裡是最長路
//x<=y+z y->x連z的邊 跑最短路
//如果不能保證圖連通 建乙個虛點連向所有點從而保證連通
//只建<=或》=的圖 剩下的變號變過來
//x==y的 建x-y>=0和y-x>=0
#include #include #include #include using namespace std;
typedef long long ll;
const int inf=0x3f3f3f3f;
const int n=1e4+10;
int rd()
int n,m,dis[n];
int head[n],cnt;
int op,a,b,c;
bool vis[n];
struct edge
e[n*3];
void init()
//實際1-n的點 0是虛點保證圖連通
bool spfa(int u)
} vis[u]=0;
return 1;
}void add(int u,int v,ll w)
int main()
for(int i=1;i<=n;++i)
if(!spfa(0))puts("no");
else puts("yes");
return 0;
}
洛谷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,...