SCOI2011 糖果 差分約束 判環

2021-09-17 18:19:19 字數 984 閱讀 2128

[scoi2011]糖果

顯然差分約束,根據條件建立所有邊,注意相等建立雙向邊。

至於為什麼跑最長路,我認為是只有式子  i - 0 >= 1才能建立0到 i (i從1到n)的邊,這樣才能把所有點連起來。

不過這裡的題解沒有建立0到 i 的所有邊,因為從 0 開始直接spfa 判斷 n 次 會tle,就對每個點用dfs的spfa,這種處理對於負權環較快。ans開long long 。圖不聯通,對每個點spfa。

在spfa裡面,每次訪問過book標記,若可以變長 dis【v】< w,且正在進行 dfs ,就說明存在環。

只要不只對0spfa就不會tle

#include using namespace std;

#define inf 0x7fffffff

#define ll long long

struct e;

int cnt,head[2000000],book[100005],dis[100005];

int tot[100005],in[100005];

e edge[300005];

int n,m;

void add(int u,int v,int w)

bool spfa(int s)

}book[s] = 0;

return true;

}int main()

else if(c==2)else if(c==3)else if(c==4)else

if(c%2==0 && a==b)

}//for(int i=1;i<=n;i++) add(i,0,1);

for(int i=1;i<=n;i++)dis[i]=1;

int f=0;

for(int i=0;i<=n;i++)

}if(f)printf("-1\n");

else

return 0;

}

SCOI 2011 糖果 SPFA 差分約束

description 幼兒園裡有n個小朋友,lxhgww老師現在想要給這些小朋友們分配糖果,要求每個小朋友都要分到糖果。但是小朋友們也有嫉妒心,總是會提出一些要求,比如小明不希望小紅分到的糖果比他的多,於是在分配糖果的時候,lxhgww需要滿足小朋友們的k個要求。幼兒園的糖果總是有限的,lxhgw...

差分約束詳解 洛谷SCOI2011糖果題解

差分約束系統 如果乙個系統由n個變數和m個約束條件組成,形成m個形如ai aj k的不等式 i,j 1,n k為常數 則稱其為差分約束系統 system of difference constraints 亦即,差分約束系統是求解關於一組變數的特殊不等式組的方法。度娘。然而並沒有看懂。通俗來說,滿足...

SCOI2011 糖果 題解

洛谷題面 看到很多題解並沒有講清楚這道題為什麼可以用某些方法,套個板子就沒了。蒟蒻就發一篇題解裝x造福大家吧233 做這道題前,我推薦大家做一下一本通中的1352 例4 13 獎金一題,因為有可能做完了這道題對於你們會有一點啟發。題目分析題目對於小朋友的嫉妒一共有 5 中情況,分別如下 如果 x 1...