96D - Police Stations
96D - Police Stations
思路:bfs,从所有的警察局开始bfs,因为bfs的深度一样,而且题目给的树保证满足条件,所以不用考虑深度。
如果搜索到一个点a,他的下一个点b已经被搜索过了,而且a到b这条路没有被走过,那么这条路可以被砍掉。
不能用dfs,这样可能导致某些点搜索不到,反例读者自己找。
代码:
#include<bits/stdc++.h> using namespace std; #define ll long long #define pb push_back #define mem(a,b) memset(a,b,sizeof(a))const int N=3e5+5; bool vis[N]={false}; bool vs[N]={false}; vector<int>g[N]; vector<int>edge[N]; vector<int>ans; int n,k,d,a,u,v; queue<int>q;void bfs() {int now;int nxt;while(!q.empty()){now=q.front();q.pop();for(int i=0;i<g[now].size();i++){if(!vis[g[now][i]])vis[g[now][i]]=true,vs[edge[now][i]]=true,q.push(g[now][i]);else if(!vs[edge[now][i]])ans.pb(edge[now][i]);}} }int main() {ios::sync_with_stdio(false);cin.tie(0);cin>>n>>k>>d;for(int i=0;i<k;i++)cin>>a,vis[a]=true;for(int i=0;i<n-1;i++)cin>>u>>v,g[u].pb(v),g[v].pb(u),edge[v].pb(i+1),edge[u].pb(i+1);for(int i=1;i<=n;i++)if(vis[i])q.push(i);bfs();sort(ans.begin(),ans.end());ans.erase(unique(ans.begin(),ans.end()),ans.end());cout<<ans.size()<<'\n';for(int i=0;i<ans.size();i++)cout<<ans[i]<<' ';cout<<'\n'; return 0; }
转载于:https://www.cnblogs.com/widsom/p/7614441.html
96D - Police Stations相关推荐
- CodeForces - 796D Police Stations bfs
思路:删除尽量多的边使得所有点都能在限制距离之内到达一个警局,删除边会形成多棵子树,最多只能k棵.其实就是以每个警局为根结点,把整棵树划分为以警局为根结点的k棵树,说明要删除的边的数量就是k-1条,即 ...
- Codeforces Round #408 (Div. 2)
C. Bank Hacking 题目大意:给出一棵n个节点的树,每个节点有一个权值,删掉一个点的代价为当前这个点的权值,并且会使其相邻点和距离为2且中间隔着未被删除的点的点权值加1,现在选一个点开始删 ...
- codeforces 796A-D
决定在 codeforces 练题啦,决定每个比赛刷前四道...太难就算了 796A Buying A House 题意:给出x轴上的n 个点,每个点有个权值,问离m 点最近的权值小于等于k 的点离m ...
- 您选择的不是数据库安装目录_您不是您的数据,但您的数据仍然是您
您选择的不是数据库安装目录 重点 (Top highlight) by Tricia Wang 由 特里西娅王 What happens when your own data becomes your ...
- 有趣题目和认知合集(持续更新)
写写对一些算法的理解,挂几个有意思的题,可能也会挂几个板子题 算法理解偏向于能懂即可,没有严格的证明 快乐几何 [1.2]Volatile Kite 点到直线 快乐搜与暴力 [2.4]Short Co ...
- NEU 1690 (最短路+LCA)
1690: Terrorists 时间限制: 5 Sec 内存限制: 128 MB 提交: 11 解决: 3 [提交][状态][讨论版] 题目描述 Terrorists! There are te ...
- gta4 oracle_GTA4中车型和真车对照表 - 侠盗猎车手4:自由城之章+侠盗猎车手4+侠盗猎车手:圣安地列斯 - 游侠NETSHOW论坛 - Powered by Discuz!...
如果平常就有再注意汽車情報或是比較喜歡車的 看到車子大慨就會聯想到大慨是以哪牌哪台車子為基本做出來的 大部分的車名都在前系列的 GTA 就有存在 而以下的表是我在網站上看到人家統計出來最相像的 裡面還 ...
- Codeforces 题目合集+分类+代码 【Updating...】【361 in total】
961A - Tetris 模拟 ...
- MXNet中使用双向循环神经网络BiRNN对文本进行情感分类
文本分类类似于图片分类,也是很常见的一种分类任务,将一段不定长的文本序列变换为文本的类别.这节主要就是关注文本的情感分析(sentiment analysis),对电影的评论进行一个正面情绪与负面情绪 ...
最新文章
- 方差分析 球形检验_重复测量数据的方差分析
- 《从0到1学习Flink》—— Flink 读取 Kafka 数据批量写入到 MySQL
- Wannafly挑战赛22
- .ajax done参数,困惑jQuery .ajax .done()函数
- 构造方法注入和设值注入有什么区别?
- android ImageView 之 android:scaleTye=
- Android平台RTMP/RTSP播放器开发系列之解码和绘制
- 电商平台需要怎样的推荐系统?
- Java:下拉列表绑定后台数据
- 4. JavaScript Math 对象
- android 按端口获取流量,如何获取高性价比流量、开拓流量端口
- python 去掉标点、数字、特殊符号_python中怎么去掉标点符号
- 南通市户口迁移(市外)
- Linux 进程间通信-IPC 机制
- windows电脑启动问题-0xc000000d
- python爬虫——爬取搜狗影视热门电视剧
- TeXstudio在右边显示预览
- Oracle 数据库利用回收站恢复删除的表实例演示
- ubuntu软件下载
- html jq页面跳转页面,JS和JQ定时跳转页面
热门文章
- 对于一个ul列表,单击弹出每个li对应的索引
- vue的props实现父组件变化子组件一起变化
- IDC 2018可穿戴市场报告:耳戴式设备占比四分之一,成“新宠”
- (转)linux下find查找命令用法
- 《Java从小白到大牛》之第11章 对象
- 充电网完成数千万元Pre-B轮融资,将会聚焦新能源乘用车市场
- Apache Velocity官方指南-资源
- Linux内核启动流程分析(一)【转】
- PHP两个字符串比较(人为出错),两字符串类型和数据表面相等,但strcmp()结果不为0...
- Flink shell报错 For input string: 0x100