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相关推荐

  1. CodeForces - 796D Police Stations bfs

    思路:删除尽量多的边使得所有点都能在限制距离之内到达一个警局,删除边会形成多棵子树,最多只能k棵.其实就是以每个警局为根结点,把整棵树划分为以警局为根结点的k棵树,说明要删除的边的数量就是k-1条,即 ...

  2. Codeforces Round #408 (Div. 2)

    C. Bank Hacking 题目大意:给出一棵n个节点的树,每个节点有一个权值,删掉一个点的代价为当前这个点的权值,并且会使其相邻点和距离为2且中间隔着未被删除的点的点权值加1,现在选一个点开始删 ...

  3. codeforces 796A-D

    决定在 codeforces 练题啦,决定每个比赛刷前四道...太难就算了 796A Buying A House 题意:给出x轴上的n 个点,每个点有个权值,问离m 点最近的权值小于等于k 的点离m ...

  4. 您选择的不是数据库安装目录_您不是您的数据,但您的数据仍然是您

    您选择的不是数据库安装目录 重点 (Top highlight) by Tricia Wang 由 特里西娅王 What happens when your own data becomes your ...

  5. 有趣题目和认知合集(持续更新)

    写写对一些算法的理解,挂几个有意思的题,可能也会挂几个板子题 算法理解偏向于能懂即可,没有严格的证明 快乐几何 [1.2]Volatile Kite 点到直线 快乐搜与暴力 [2.4]Short Co ...

  6. NEU 1690 (最短路+LCA)

    1690: Terrorists 时间限制: 5 Sec  内存限制: 128 MB 提交: 11  解决: 3 [提交][状态][讨论版] 题目描述 Terrorists! There are te ...

  7. gta4 oracle_GTA4中车型和真车对照表 - 侠盗猎车手4:自由城之章+侠盗猎车手4+侠盗猎车手:圣安地列斯 - 游侠NETSHOW论坛 - Powered by Discuz!...

    如果平常就有再注意汽車情報或是比較喜歡車的 看到車子大慨就會聯想到大慨是以哪牌哪台車子為基本做出來的 大部分的車名都在前系列的 GTA 就有存在 而以下的表是我在網站上看到人家統計出來最相像的 裡面還 ...

  8. Codeforces 题目合集+分类+代码 【Updating...】【361 in total】

    961A - Tetris                                                模拟                                      ...

  9. MXNet中使用双向循环神经网络BiRNN对文本进行情感分类

    文本分类类似于图片分类,也是很常见的一种分类任务,将一段不定长的文本序列变换为文本的类别.这节主要就是关注文本的情感分析(sentiment analysis),对电影的评论进行一个正面情绪与负面情绪 ...

最新文章

  1. 方差分析 球形检验_重复测量数据的方差分析
  2. 《从0到1学习Flink》—— Flink 读取 Kafka 数据批量写入到 MySQL
  3. Wannafly挑战赛22
  4. .ajax done参数,困惑jQuery .ajax .done()函数
  5. 构造方法注入和设值注入有什么区别?
  6. android ImageView 之 android:scaleTye=
  7. Android平台RTMP/RTSP播放器开发系列之解码和绘制
  8. 电商平台需要怎样的推荐系统?
  9. Java:下拉列表绑定后台数据
  10. 4. JavaScript Math 对象
  11. android 按端口获取流量,如何获取高性价比流量、开拓流量端口
  12. python 去掉标点、数字、特殊符号_python中怎么去掉标点符号
  13. 南通市户口迁移(市外)
  14. Linux 进程间通信-IPC 机制
  15. windows电脑启动问题-0xc000000d
  16. python爬虫——爬取搜狗影视热门电视剧
  17. TeXstudio在右边显示预览
  18. Oracle 数据库利用回收站恢复删除的表实例演示
  19. ubuntu软件下载
  20. html jq页面跳转页面,JS和JQ定时跳转页面

热门文章

  1. 对于一个ul列表,单击弹出每个li对应的索引
  2. vue的props实现父组件变化子组件一起变化
  3. IDC 2018可穿戴市场报告:耳戴式设备占比四分之一,成“新宠”
  4. (转)linux下find查找命令用法
  5. 《Java从小白到大牛》之第11章 对象
  6. 充电网完成数千万元Pre-B轮融资,将会聚焦新能源乘用车市场
  7. Apache Velocity官方指南-资源
  8. Linux内核启动流程分析(一)【转】
  9. PHP两个字符串比较(人为出错),两字符串类型和数据表面相等,但strcmp()结果不为0...
  10. Flink shell报错 For input string: 0x100