绝对是好题,把所有警察局放入队列然后开始广搜,如果碰到了vis过的顶点,但是那条边没有访问过,那么这条边就可以删掉

另外广搜的vis标记是在入队时就打的,,

#include<bits/stdc++.h>
using namespace std;
#define maxn 300005 struct Edge{
int to,next,flag,id;
}edge[maxn<<];
int n,k,d,head[maxn],tot,p[maxn],vis[maxn]; void init(){
tot=;
memset(vis,,sizeof vis);
memset(head,-,sizeof head);
} void addedge(int u,int v,int id){
edge[tot].to=v;edge[tot].flag=;edge[tot].id=id;edge[tot].next=head[u];
head[u]=tot++;
} int main(){
int u,v;
init();
scanf("%d%d%d",&n,&k,&d);
for(int i=;i<=k;i++)scanf("%d",&p[i]);
for(int i=;i<n;i++){
scanf("%d%d",&u,&v);
addedge(u,v,i);addedge(v,u,i);
} queue<int> q;while(!q.empty())q.pop();
for(int i=;i<=k;i++)q.push(p[i]),vis[p[i]]=;
while(!q.empty()){
int u=q.front();q.pop();
//cout << u << '\n';
for(int i=head[u];i!=-;i=edge[i].next){
int v=edge[i].to;
//cout << v << ' ';
if(vis[v] && !edge[i].flag){
edge[i].flag=edge[i^].flag=;
continue;
}
else if(!vis[v] && !edge[i].flag){
edge[i].flag=edge[i^].flag=;
vis[v]=;
q.push(v);
}
}
}
int ans=;
for(int i=;i<tot;i+=) if(edge[i].flag==) ans++;printf("%d\n",ans);
for(int i=;i<tot;i+=) if(edge[i].flag==) printf("%d ",edge[i].id);
return ;
}

cf796d 树,bfs好题!的更多相关文章

  1. hdu5325 树的思维题

    pid=5325">http://acm.hdu.edu.cn/showproblem.php? pid=5325 Problem Description Bobo has a tre ...

  2. WOJ1024 (POJ1985+POJ2631) Exploration 树/BFS

    title: WOJ1024 (POJ1985+POJ2631) Exploration 树/BFS date: 2020-03-20 10:43:00 categories: acm tags: [ ...

  3. HDU 4578 Transformation --线段树,好题

    题意: 给一个序列,初始全为0,然后有4种操作: 1. 给区间[L,R]所有值+c 2.给区间[L,R]所有值乘c 3.设置区间[L,R]所有值为c 4.查询[L,R]的p次方和(1<=p< ...

  4. Hihicoder 题目1 : Trie树(字典树,经典题)

    题目1 : Trie树 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮助,在编 ...

  5. poj 3264:Balanced Lineup(线段树,经典题)

    Balanced Lineup Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 32820   Accepted: 15447 ...

  6. poj 2503:Babelfish(字典树,经典题,字典翻译)

    Babelfish Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 30816   Accepted: 13283 Descr ...

  7. poj 2001:Shortest Prefixes(字典树,经典题,求最短唯一前缀)

    Shortest Prefixes Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 12731   Accepted: 544 ...

  8. hdu 1247:Hat’s Words(字典树,经典题)

    Hat’s Words Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total ...

  9. hdu 1075:What Are You Talking About(字典树,经典题,字典翻译)

    What Are You Talking About Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 102400/204800 K ...

  10. hdu 1251:统计难题(字典树,经典题)

    统计难题 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131070/65535 K (Java/Others)Total Submi ...

随机推荐

  1. django基础之数据库操作

    Django 自称是“最适合开发有限期的完美WEB框架”.本文参考<Django web开发指南>,快速搭建一个blog 出来,在中间涉及诸多知识点,这里不会详细说明,如果你是第一次接触D ...

  2. Date对象常用方法

    年月日: var oDate = new Date() //年 oDate.getFullYear(); //月 返回的月份要+1才正常 oDate.getMonth()+1: //日 oDate.g ...

  3. 面向对象【day07】:类的特性介绍(四)

    本节内容 1.概述 2.访问属性 3.私有属性 4.总结 一.概述 在上篇博客中我们已经讲了一些关于类的知识,我们来回顾以下: 定义类(class dog(object))-> 实例化(d = ...

  4. Python入门系列教程(一)基础

    基础知识 1.变量及类型 2.换行\n 3.输入 password = raw_input("请输入密码:") print '您刚刚输入的密码是:', password 4.格式化 ...

  5. The provider is not compatible with the version of Oracle client

    保留下安装文件夹里的所有文件.然后把我那个很小应用软件(需要访问远程的oracle数据库)放在这个文件夹里.删除一下直接感觉无用的文件,先抽取可 能用不着的文件,保留放在另一个备用的文件夹里,然后运行 ...

  6. luogu P4289 [HAOI2008]移动玩具

    传送门 这道题可以二进制记录状态搜索 也可以做以下考虑 若一个棋子要移动到另一个位置上去,则步数为两点的曼哈顿距离(横坐标差的绝对值+纵坐标差的绝对值),因为假设路径上有其他的棋子,可以通过移动其他棋 ...

  7. 最新Linux系统Ubuntu16.04搭建HUSTOJ(LAMP环境)

    应该跟着下面的步骤就OK了吧! 1.升级软件库,更新软件 打开终端 输入 sudo apt-get update sudo apt-get upgrade 2.安装mysql5.7 (注意:mysql ...

  8. [JXOI2018]游戏 (线性筛,数论)

    [JXOI2018]游戏 \(solution:\) 这一道题的原版题面实在太负能量了,所以用了修改版题面. 这道题只要仔细读题,我们就可以将题目的一些基本性质分析出来:首先我们定义:对于某一类都可以 ...

  9. Python中os.system和os.popen区别

    Python调用Shell,有两种方法:os.system(cmd)或os.popen(cmd)脚本执行过程中的输出内容.实际使用时视需求情况而选择. 两者的区别是: os.system(cmd)的返 ...

  10. 关于apache 开启 ssl https 支持 TLS1.2 的些事

    项目背景 需要搭建一个小程序的服务器,当然要使用https协议服务器windows service 2012 r2,后台语言是php,服务集成环境装的是appserv2.5 ,apache2.2证书申 ...