luogu p1084 疫情控制
再水篇部落格
2019.8.28
騙-1分未遂
打了個二分不會check 勸退
2019.9.29(乙個月了啊…)
怎麼說都要打下來
這個題解好哇
注釋了一些在**裡
#include
#include
#include
using
namespace std;
#define ll long long
ll ans=-1
,sumc=
0,l,r;
ll dis[
500100][
30],path[
500100
],dep[
500100];
int first[
500100];
int f[
500100][
30];struct nod1a[
1000010];
struct nod2act[
500100
],wait[
500100];
int n,m,army[
500100
],need=
0,can=
0,len=0;
int used[
500100
],v[
500100
],stay[
500100];
void
ins(
int x,
int y,ll c)
void
pre(
int x,
int ff)
for(
int i=first[x]
;i;i=a[i]
.next)
}void
move
(ll nowc)}if
(f[x][0
]==1&&
(went+path[x]
)<=nowc)
}else}}
void
find
(int x,
int ff)
if(sum1!=
0&&sum1==sum2)v[x]=1
;if(x==1)
}}}int
cmp(nod2 x,nod2 y)
intcheck
(ll nowc)
if(act[now]
.left.left)
return0;
used[act[now]
.old]=1
;now++;}
return1;
}int
main()
scanf
("%d"
,&m)
;for
(int i=
1;i<=m;i++
)scanf
("%d"
,&army[i]);
dep[1]
=1; path[1]
=0;pre(1
,0);
//1.先預處理出倍增陣列
ll l=
0,r=sumc;
while
(l<=r)
//2.二分
else l=mid+1;
}printf
("%lld"
,ans)
;}
剛剛溜去看合唱比賽了
我們班天耀中華唱的好好!
雖然我不上台在台下有點寂寞
但真的好激動啊 真好
我知道他們練得很刻苦
我也要努力啊!
luogu P1084 疫情控制
題面傳送門 很毒瘤的一道大模擬。首先貪心讓軍隊走到最上面的點,如果能走到根節點就停留在根節點下面。然後檢視哪幾顆子樹沒有被封死。對於有軍隊的根節點,讓能走回來的軍隊出去調動,反之讓其停留在當前節點。然後就是細節。實現 include include include include include u...
P1084 疫情控制
p1084 疫情控制 好像二分 倍增 樹上差分是比較熱門的考尻點 會結合在一起考,難度比較大,需要多加練習。現在在解決noip最後的幾道大題,很鵝心。也沒有人做嚮導,很難受qwq 首先這是一棵樹,乙個軍隊肯定是越往上走越好。有大佬說過,對於這種提點的題,要是用倍增 要是時間最短,就是要是用時最長的軍...
P1084 疫情控制
p1084 傳送門 感覺noip t3也是有點東西的 將該題轉化為最大值最小問題後想到二分答案 接下來考慮 check 時如何貪心 由於除了在根節點所有軍隊都只往上跳明顯採取倍增的方式 記錄所有能到達根節點的軍隊和根節點下所有未被封死的子樹 將兩個序列從小到大排序後貪心匹配即可判斷 注意 在判斷封死...