幼兒園裡有n個小朋友,lxhgww老師現在想要給這些小朋友們分配糖果,要求每個小朋友都要分到糖果。但是小朋友們也有嫉妒心,總是會提出一些要求,比如小明不希望小紅分到的糖果比他的多,於是在分配糖果的時候,lxhgww需要滿足小朋友們的k個要求。幼兒園的糖果總是有限的,lxhgww想知道他至少需要準備多少個糖果,才能使得每個小朋友都能夠分到糖果,並且滿足小朋友們所有的要求。
經典題目;
值得吐槽的是,資料裡有乙個10w個點的鏈,已被t成狗......
只有正向從n到1向起點連邊才能過;
還有一種方法是最開始就把所有點放佇列裡;
通過率下降2個百分點;
1 #include2 #include3 #include4 #includeview code5 #include6 #include7 #include8 #include9 #include10 #include11 #include
12using
namespace
std;
13#define file "dealing"
14#define ll long long
15#define up(i,j,n) for(int i=j;i<=n;i++)
16#define pii pair< int , int >
17#define abs(x) (x)<0?-(x):(x)
18namespace
io21
intread()
24while(ch>='
0'&&ch<='9')
25return f?-x:x;26}
27 }using
namespace
io;28
bool chkmin(int &a,int b)
29bool chkmax(int &a,int b)
30const
int maxn(1000500),inf(100000000
);31
intn,m,s;
32struct
nodee[maxn<<2
];35
int linkk[maxn],len=0;36
void insert(int x,int y,int
v)42
int q[maxn+10],tail=0,head=0
,d[maxn],t[maxn];
43void print()
44bool
vis[maxn];
45int
main()
57if(x==3)insert(a,b,0
);58
if(x==4)62
if(x==5)insert(b,a,0
);63}64
for(int i=1;i<=n;i++)insert(0,i,1
);65 up(i,0,n)q[++tail]=i,d[i]=-inf,t[i]++,vis[i]=1;66
//關鍵中的關鍵
67 d[0]=0;68
while(head!=tail)82}
83}84 vis[x]=0;85
}86 ll ans=0;87
for(int i=1;i<=n;i++)ans+=d[i];
88 printf("
%lld\n
",ans);
89return0;
90 }
差分約束 糖果
幼兒園裡有 n 個小朋友,老師現在想要給這些小朋友們分配糖果,要求每個小朋友都要分到糖果。但是小朋友們也有嫉妒心,總是會提出一些要求,比如小明不希望小紅分到的糖果比他的多,於是在分配糖果的時候,老師需要滿足小朋友們的 k 個要求。幼兒園的糖果總是有限的,老師想知道他至少需要準備多少個糖果,才能使得每...
差分約束 糖果
幼兒園裡有 nn 個小朋友,老師現在想要給這些小朋友們分配糖果,要求每個小朋友都要分到糖果。但是小朋友們也有嫉妒心,總是會提出一些要求,比如小明不希望小紅分到的糖果比他的多,於是在分配糖果的時候,老師需要滿足小朋友們的 kk 個要求。幼兒園的糖果總是有限的,老師想知道他至少需要準備多少個糖果,才能使...
分糖果 差分約束
description 幼兒園裡有n 個小朋友,lxhgww 老師現在想要給這些小朋友們分配糖果,要求每個小朋友都要分到糖果。但是小朋友們也有嫉妒心,總是會提出一些要求,比如小明不希望小紅分到的糖果比他的多,於是在分配糖果的時候,lxhgww 需要滿足小朋友們的 k個要求。幼兒園的糖果總是有限的,l...