国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

BZOJ2599: [IOI2011]Race 點分治

2019-11-08 03:03:56
字體:
來源:轉載
供稿:網友

題目鏈接:http://www.lydsy.com/JudgeOnline/PRoblem.php?id=2599

題解:點分治的時候記錄兩個值,一個是距離,一個是邊數,因為最小值是無法刪除的,所以可以開一個數組記錄每一個答案出現了多少次,最后從小到大掃數組就OK

#include<cmath>#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;const int N=200005;const int M=400005;const int inf=1e9;struct pp{int dis,dep;} s[N];int len,n,K,G,h,sum,cnt,dep[N],dis[N],siz[N],maxn,ans[N];int to[M],nxt[M],lj[N],w[M];bool vis[N];void ins(int f,int t,int p) {cnt++,to[cnt]=t,nxt[cnt]=lj[f],lj[f]=cnt,w[cnt]=p;}void add(int f,int t,int p) {ins(f,t,p),ins(t,f,p);}bool cmp(pp u,pp v) {return u.dis<v.dis;}void dfs(int x,int fa){	s[++h]=(pp){dis[x],dep[x]};	for(int i=lj[x];i;i=nxt[i])	if(!vis[to[i]]&&to[i]!=fa)	{		dis[to[i]]=dis[x]+w[i];		dep[to[i]]=dep[x]+1;		dfs(to[i],x);	}}void findG(int x,int fa){	int mx=0;	siz[x]=1;	for(int i=lj[x];i;i=nxt[i])	if(!vis[to[i]]&&to[i]!=fa)	{		findG(to[i],x);		siz[x]+=siz[to[i]];		mx=max(mx,siz[to[i]]);	}	mx=max(mx,sum-siz[x]);	if(mx<maxn) maxn=mx,G=x;}void cal(int x,int now,int ff){	dis[x]=now;	h=0;	dfs(x,0);	sort(s+1,s+h+1,cmp);	int j=h;	for(int i=1;i<=h;i++)      {    	while(s[i].dis+s[j].dis>K) j--;        for(int l=j;K&&s[i].dis+s[l].dis==K;l--)        ans[s[i].dep+s[l].dep]+=ff;    }}void solve(int x){	dep[x]=0;	cal(x,0,1);	vis[x]=true;	for(int i=lj[x];i;i=nxt[i])	if(!vis[to[i]])	{		cal(to[i],w[i],-1);		maxn=inf;		sum=siz[to[i]];		findG(to[i],0);		solve(G);	}}int main(){	scanf("%d%d",&n,&K);	int u,v,w;	for(int i=1;i<n;i++)	{		scanf("%d%d%d",&u,&v,&w);		u++,v++;		add(u,v,w);	}	G=0;	sum=n,maxn=inf;	findG(1,0);	solve(G);	for(int i=1;i<=n;i++)	if(ans[i])	{		printf("%d/n",i);		return 0;	}	puts("-1");}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 蒙阴县| 南江县| 昌都县| 宝应县| 东方市| 天门市| 惠安县| 瑞昌市| 明溪县| 太白县| 基隆市| 黄骅市| 五大连池市| 从江县| 紫云| 乌兰浩特市| 青州市| 博野县| 凤冈县| 中牟县| 平泉县| 澄迈县| 宁城县| 黔西县| 澜沧| 交口县| 龙口市| 宜城市| 广宗县| 洪泽县| 叙永县| 通渭县| 伊春市| 香河县| 宜兰县| 米易县| 安徽省| 陈巴尔虎旗| 青阳县| 驻马店市| 钟山县|