zoj 3811 Untrusted Patrol 2014牡丹江网络赛 dfs
2014-09-08 20:15
302 查看
题目链接:zoj 3811
给定一张n个节点与m条边构成的无向图,其中有k个节点上有传感器,会记录下第一次被访问的时间
现在按被访问时间顺序给出所有被访问过的l个传感器,问在该访问顺序下,是否有可能访问完整张图
图上的深搜。
首先,如果被访问的传感器数量少于k则肯定有节点没被访问过。
对于给定顺序传感器,首先判断该节点是否在可能访问的范围内,
*若不在,则输出No
*若在,则对该点进行深搜,访问图上还没有被访问过点,找出该点访问过之后,哪些点有可能被访问
还有个坑点,整张图有可能不是联通的,只要上述步骤结束后所有点都被访问过了,则说明图是联通的
给定一张n个节点与m条边构成的无向图,其中有k个节点上有传感器,会记录下第一次被访问的时间
现在按被访问时间顺序给出所有被访问过的l个传感器,问在该访问顺序下,是否有可能访问完整张图
图上的深搜。
首先,如果被访问的传感器数量少于k则肯定有节点没被访问过。
对于给定顺序传感器,首先判断该节点是否在可能访问的范围内,
*若不在,则输出No
*若在,则对该点进行深搜,访问图上还没有被访问过点,找出该点访问过之后,哪些点有可能被访问
还有个坑点,整张图有可能不是联通的,只要上述步骤结束后所有点都被访问过了,则说明图是联通的
/****************************************************** * File Name: c.cpp * Author: kojimai * Creater Time:2014年09月07日 星期日 13时22分40秒 ******************************************************/ #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> #include<iostream> #include<vector> using namespace std; #define FFF 100005 int order[FFF],first[FFF],e; bool flag[FFF]; bool vis[FFF]; struct node { int v,next; }edge[FFF*4]; void addedge(int u,int v) { edge[e].v=v;edge[e].next=first[u];first[u]=e++; } void dfs(int now) { vis[now]=true; for(int k=first[now];~k;k=edge[k].next) { int v=edge[k].v; if(!vis[v]) { vis[v]=true; if(flag[v]) { flag[v]=false; } else { dfs(v); } } } return; } int main() { int keng,n,m,k,x,y,l; scanf("%d",&keng); while(keng--) { memset(vis,false,sizeof(vis)); memset(flag,false,sizeof(flag)); e=0; memset(first,-1,sizeof(first)); scanf("%d%d%d",&n,&m,&k); for(int i=0;i<k;i++) { scanf("%d",&x); flag[x]=true; } for(int i=0;i<m;i++) { scanf("%d%d",&x,&y); addedge(x,y); addedge(y,x); } scanf("%d",&l); for(int i=0;i<l;i++) scanf("%d",&order[i]); if(l<k) { printf("No\n"); } else { flag[order[0]]=false; bool ok=true; for(int i=0;i<l&&ok;i++) { if(flag[order[i]]==true) { ok=false; } else { dfs(order[i]); } //out(); } for(int i=1;i<=n&&ok;i++) { if(!vis[i]) ok=false; } if(ok) printf("Yes\n"); else printf("No\n"); } } return 0; }
相关文章推荐
- ZOJ-3811 Untrusted Patrol DFS 2014牡丹江网络赛C题
- ZOJ 3811 —— Untrusted Patrol(2014牡丹江网络赛C题)
- ZOJ 3811 zoj 3811 Untrusted Patrol牡丹江网络赛C题
- zoj 3811 Untrusted Patrol 牡丹江网络赛c题
- zoj 3811 Untrusted Patrol(bfs或dfs)
- ZOJ 3811 Untrusted Patrol dfs
- ZOJ 3811 / 2014 牡丹江赛区网络赛 C. Untrusted Patrol bfs/dfs/并查集
- ZOJ 3811 Untrusted Patrol The 2014 ACM-ICPC Asia Mudanjiang Regional First Round
- zoj 3811 Untrusted Patrol 图论 The 2014 ACM-ICPC Asia Mudanjiang Regional First Round
- ZOJ 3811-Untrusted Patrol(DFS)
- ZOJ 3811 / 2014 牡丹江赛区网络赛 C. Untrusted Patrol
- zoj 3811 Untrusted Patrol The 2014 ACM-ICPC Asia Mudanjiang Regional First Round C
- ZOJ 3811 Untrusted Patrol 标记+dfs
- Zoj 3811 Untrusted Patrol 求连通顺序
- ZOJ 3814 / 2014 牡丹江赛区网络赛 F. Sawtooth Puzzle
- ZOJ 3809 The Himalayas (2014 ACM/ICPC 牡丹江站 网络预选赛 A 题)
- zoj 3813 Alternating Sum(2014ACMICPC Regional 牡丹江站网络赛 E)
- 2014牡丹江网络预选赛F题(隐式图BFS暴搜)zoj3814
- ZOJ 3812 We Need Medicine(dp,状态压缩,2014牡丹江网络赛D题)
- [ACM] zoj 3809 The Himalayas (2014 ACMICPC Regional 牡丹江站网络赛 A题)