CodeForces Round #196 D Book of Evil
来源:互联网 发布:怎么在淘宝上买电视棒 编辑:程序博客网 时间:2024/05/20 21:20
这个题感觉叉姐讲的灰常好,我就不献丑了
偷偷放上链接
具体代码就是两遍DFS
感觉也没什么好讲的样子?
那就看代码吧恩(点头)
-------------------------我是代码的昏割线-------------------
#include<bits/stdc++.h>using namespace std;const int maxn = 112345;vector<int> edge[maxn];void init(int n){ for(int i=0;i<=n;i++) edge[i].resize(0);}void Link(int st,int ed){ edge[st].push_back(ed); edge[ed].push_back(st);}bool newt[maxn];bool vis[maxn];bool dfsg(int st){ vis[st]=true; for(auto &x:edge[st]){ if(vis[x]==false){ vis[x]=true; if(dfsg(x)){ newt[st]=true; } } } return newt[st];}int dis[maxn];void dfsnd(int st,int d){ dis[st]=d; for(auto &x:edge[st]){ if(newt[x]==true && dis[x]==-1){ dfsnd(x,d+1); } }}int disa[maxn];int disb[maxn];void dfs(int st,int d,int *dis){ dis[st]=d; for(auto & x : edge[st]){ if(dis[x]==-1) dfs(x,d+1,dis); }}int main(){ int n,m,d; while(~scanf("%d %d %d",&n,&m,&d)){ memset(newt,0,sizeof(newt)); init(n); int st; while(m--){ scanf("%d",&st); newt[st]=true; } int u,v; for(int i=1;i<n;i++){ scanf("%d %d",&u,&v); Link(u,v); } memset(vis,0,sizeof(vis)); dfsg(st); memset(dis,-1,sizeof(dis)); dfsnd(st,0); int sta = st; for(int i=1;i<=n;i++){ if(dis[i] > dis[sta]) sta = i; } memset(dis,-1,sizeof(dis)); dfsnd(sta,0); int stb = sta; for(int i=1;i<=n;i++){ if(dis[i] > dis[stb]) stb = i; } memset(disa,-1,sizeof(disa)); memset(disb,-1,sizeof(disb)); dfs(sta,0,disa); dfs(stb,0,disb); int ans=0; for(int i=1;i<=n;i++){ if(max(disa[i],disb[i]) <=d) ans++; } printf("%d\n",ans); } return 0;}
0 0
- CodeForces Round #196 D Book of Evil
- codeforces 337D Book of Evil
- codeforces 337D D. Book of Evil(树形dp)
- codeforces 337D D. Book of Evil (树形 dp)
- 【树形DP】 codeforces 337D Book of Evil
- Codeforces 337D Book of Evil 【树,dfs】
- Codeforces 337D Book of Evil (树的直径)
- CodeForces 337D——Book of Evil(数据结构)
- Codeforces-337D Book of Evil【树形dp】
- CodeForces 337D Book of Evil(双向dfs)
- 337D Book of Evil
- Codeforces Round #196 (Div. 2) / 337D Book of Evil (树的直径变形——树的最长标记弦)
- CodeForces #196(Div. 2) 337D Book of Evil (树形dp)
- CF-337D Book of Evil
- cordeforces 337D Book of Evil
- codeforces 338b Book of Evil
- Codeforces 337D Book of Evil 树状DP 或 BFS找子树直径端点
- Codeforces 337 D Book of Evil(树形dp,两遍dfs)
- 五种霓虹灯逻辑【原创】
- 不在官方购买 HostGator 虚拟主机的六大理由
- 数据结构实践——大数据集上排序算法性能的体验
- linker command failed with exit code 1 (use -v to see invocation)问题
- 使用github atom中的 activate-power-mode
- CodeForces Round #196 D Book of Evil
- iOS CoreImage专题(一)—— 概述
- git在oschina中的使用
- Git 常用命令大全
- Youth
- WindowManager.LayoutParams(四:BRIGHTNESS)
- java学习
- Android源码--打开系统联系人界面并获取点击
- 高性能 TCP & UDP 通信框架 HP-Socket v3.3.2 发布