分糖果 差分約束

2021-07-11 23:09:06 字數 2643 閱讀 2363

description

幼兒園裡有n

個小朋友,

lxhgww

老師現在想要給這些小朋友們分配糖果,要求每個小朋友都要分到糖果。但是小朋友們也有嫉妒心,總是會提出一些要求,比如小明不希望小紅分到的糖果比他的多,於是在分配糖果的時候,

lxhgww

需要滿足小朋友們的

k個要求。幼兒園的糖果總是有限的,

lxhgww

想知道他至少需要準備多少個糖果,才能使得每個小朋友都能夠分到糖果,並且滿足小朋友們所有的要求。

input

輸入的第一行是兩個整數n,k

。 接下來k

行,表示這些點需要滿足的關係,每行

3個數字,x,

a,b。

如果x=1

, 表示第

a個小朋友分到的糖果必須和第

b個小朋友分到的糖果一樣多;

如果x=2

, 表示第a

個小朋友分到的糖果必須少於第

b個小朋友分到的糖果;

如果x=3

, 表示第a

個小朋友分到的糖果必須不少於第

b個小朋友分到的糖果;

如果x=4

, 表示第a

個小朋友分到的糖果必須多於第

b個小朋友分到的糖果;

如果x=5

, 表示第a

個小朋友分到的糖果必須不多於第

b個小朋友分到的糖果;

output

輸出一行,表示lxhgww

老師至少需要準備的糖果數,如果不能滿足小朋友們的所有要求,就輸出-1。

sample input

5 7

1 1 2

2 3 2

4 4 1

3 4 5

5 4 5

2 3 5

4 5 1

sample output

11

hint

【資料範圍】

對於30%的資料,保證 n<=100

對於100%的資料,保證 n<=100000

對於所有的資料,保證 k<=100000,1<=x<=5,1<=a, b<=n

差分約束

1.如果

要求最大

值,把不等式

變為標準

x-y<=

k 的形式,然後

建立一條從y到

x的k邊,求出

最短路徑即可

如果要求最小值的話,變為

x-y>=k

的標準形式

,然後建立一條從y到

x的k邊,求出最長路徑即可

然後建立一條從y到

x權值為k的

邊 如果是

<

號 不是

<= 呢?

x-y=>x-y<=

k-1

2.如果a

同理a<=b,則a到b有一條權值為0的邊 or b到a有一條權值為0的邊。

如果a=b,則a到b有一條權值為0的邊 and b到a有一條權值為0的邊。

ps:正解應該是跑最長路 但我這跑的最短路 。

#include

#include

#include

#include

using

namespace std;

int v,e,s,z,tot;

const

int manx=

2333333

;int first[manx],next[manx],dis[manx];

bool used[manx];

struct

edge

es[manx*2];

void

build

(int ff,

int tt,

int dd)

; next[tot]=first[ff];

first[ff]=tot;

}deque <

int> q;

int tim[

2333333

];bool

spfa

(int s)

else

q.push_back

(v);}}

}}return

false;}

intmain

()else

if(xx==2)

build

(a,b,1);

else

if(xx==3)

build

(b,a,0);

else

if(xx==4)

build

(b,a,1);

else

if(xx==5)

build

(a,b,0);

}for

(int i=v;i>=

1;i--)

build(0

,i,1

); / /使所有圖都連通 1呢是每個人至少都有乙個if(

spfa(0

)==0

)else

puts

("-1"

);return0;

}

差分約束 糖果

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

差分約束 糖果

幼兒園裡有 nn 個小朋友,老師現在想要給這些小朋友們分配糖果,要求每個小朋友都要分到糖果。但是小朋友們也有嫉妒心,總是會提出一些要求,比如小明不希望小紅分到的糖果比他的多,於是在分配糖果的時候,老師需要滿足小朋友們的 kk 個要求。幼兒園的糖果總是有限的,老師想知道他至少需要準備多少個糖果,才能使...

差分約束 糖果

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