題解:
二分答案。
假設列舉到答案是xxx。
找出所有長度大於x
xx的鏈,那麼這些鏈上必須要放蟲洞,而且必須放在一條所有鏈都經過的邊上,否則必然有一條鏈的長度是大於x
xx的。
這個直接差分就能求出所有鏈都經過的邊,並且把最長的那條改為蟲洞,看看所有邊是否合法,則可判斷x
xx是否可行。
應該不是很難吧。。。
比較簡單的noip題。
不過**有點毒瘤,95分了n遍,最後把swap改掉才過。
code:
#include
#define ll long long
const
int n=
1e6+5;
using
namespace std;
int dist[n]
,len[n]
,head[n]
,n,m,deep[n]
,fa[n]
;int tot,t[n]
,f[n][20
],a[n]
,b[n]
,ans[n]
,sum[n]
;inline ll read()
while
(s<=
'9'&&s>=
'0')
return x*f;
}struct node
edge[n]
;void
add(
int u,
int v,
int w)
void
dfs(
int u)}}
intlca
(int u,
int v)
void
dfs(
int u)}}
intcheck
(int x)
dfs(1)
;for
(int i=
1;i<=n;i++)if
(sum[i]
==cnt&&len[i]
>=mx)
return1;
return0;
}int
main()
dfs(1)
;for
(int i=
1;i<=n;i++
)f[i][0
]=fa[i]
;for
(int j=
1;j<
20;j++
)for
(int i=
1;i<=n;i++
) f[i]
[j]=f[f[i]
[j-1]]
[j-1];
int l=
0,r=0;
for(
int i=
1;i<=m;i++
)while
(l<=r)
printf
("%d\n"
,l);
return0;
}
NOIP 2015 day2 T3 運輸計畫
time 2018 9 27 題目大意 資料範圍 1 n m 300000 0 v al 1000 time limit 1000ms memory limit 256mb 1 n,m 300000 0 val 1000 text text 1 n m 3 0000 00 v al 1 000tim...
NOIP 2015 Day2 T3 運輸計畫
公元 2044 年,人類進入了宇宙紀元。公元 2044 年,人類進入了宇宙紀元。l 國有 n 個星球,還有 n 1 條雙向航道,每條航道建立在兩個星球之間,這 n 1 條航道連通了 l 國的所有星球。小 p 掌管一家物流公司,該公司有很多個運輸計畫,每個運輸計畫形如 有一艘物流飛船需要從 u i 號...
noip2015day1t2 資訊傳遞
把每個同學看成乙個點,傳遞關係看成一條邊,點數等於邊數,因此圖由若干個環或環鏈復合邊數等於點數的東西組成,不存在孤立鏈。在圖上,傳遞一輪後,每個點掌握沿邊前乙個點的資訊,傳遞x輪後,任意乙個點恰好掌握沿邊反向前進x條邊的路徑上的所有點的資訊,要聽到自己的資訊,也就是在環上走一圈。這樣就把題目抽象為找...