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

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

[BZOJ1086][SCOI2005]王室聯邦(樹上分塊)

2019-11-06 06:26:50
字體:
來源:轉載
供稿:網友

題目描述

傳送門

題解

http://blog.csdn.net/popoQQq/article/details/42772237

代碼

#include<algorithm>#include<iostream>#include<cstring>#include<cstdio>#include<cmath>using namespace std;#define N 1005int n,b,x,y,cnt;int stack[N],top,belong[N],root[N];int tot,point[N],nxt[N*2],v[N*2];void add(int x,int y){ ++tot; nxt[tot]=point[x]; point[x]=tot; v[tot]=y;}void dfs(int x,int fa){ int bottom=top; for (int i=point[x];i;i=nxt[i]) if (v[i]!=fa) { dfs(v[i],x); if (top-bottom>=b) { root[++cnt]=x; while (top!=bottom) belong[stack[top--]]=cnt; } } stack[++top]=x;}int main(){ scanf("%d%d",&n,&b); for (int i=1;i<n;++i) { scanf("%d%d",&x,&y); add(x,y),add(y,x); } dfs(1,0); while (top) belong[stack[top--]]=cnt;
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 蒙阴县| 汉阴县| 汉阴县| 辉县市| 三亚市| 民和| 卢氏县| 寿宁县| 乡宁县| 江北区| 怀宁县| 岱山县| 桓台县| 方山县| 朔州市| 重庆市| 宁武县| 屏东县| 府谷县| 普洱| 五大连池市| 文山县| 汝州市| 福泉市| 中牟县| 微山县| 常德市| 南平市| 洪雅县| 荆州市| 淮安市| 双桥区| 吉木乃县| 嘉义市| 尉氏县| 土默特左旗| 天柱县| 江西省| 瓮安县| 古蔺县| 宜章县|