题目大意:给一个无向图,有些点有装监视器记录第一次到达该点的位置,问是否存在一条路径使得监视器以给定的顺序响起,并且经过所有点

思路:牡丹江网络赛的题,当时想了种并查集的做法,通神写完程序WA了几发,此时JYB用BFS秒了,索性最后还是调出来了,今天自己写了下,感觉唯一的坑点就是需要遍历完所有的点

//zoj3811

#include <stdio.h>

#include <string.h>

#include <algorithm>

#include <queue>

#define maxn 500000

#define inf 0x3f3f3f3f

using namespace std;

int father[maxn],head[maxn],point[maxn],next[maxn];

int n,m,k,a,b[maxn],now,x[maxn],y[maxn];

bool mark[maxn];

int find(int x)

{

if(father[x]==x)return x;

return father[x]=find(father[x]);

}

void add(int x,int y)

{

next[++now]=head[x];

head[x]=now;

point[now]=y;

}

int main()

{

int t,xx,yy,l;

scanf("%d",&t);

while(t--)

{

int flag=0,z=0;

now=0;

memset(head,0,sizeof(head));

memset(mark,0,sizeof(mark));

scanf("%d%d%d",&n,&m,&k);

for(int i=1;i<=n;i++)father[i]=i;

for(int i=1;i<=k;i++)

{

scanf("%d",&a);

mark[a]=1;

}

for(int i=1;i<=m;i++)

{

scanf("%d%d",&xx,&yy);

add(xx,yy);add(yy,xx);

x[i]=xx;y[i]=yy;

}

scanf("%d",&l);

for(int i=1;i<=l;i++)scanf("%d",&b[i]);

mark[b[1]]=0;

//if(l!=k){printf("No\n");continue;}

for(int i=1;i<=m;i++)

{

if(mark[x[i]]||mark[y[i]])continue;

xx=find(x[i]);yy=find(y[i]);

if(xx!=yy)

{

father[xx]=yy;

z++;

//   printf("%d  %d",x[i],y[i]);

}

}

for(int i=2;i<=l;i++)

{

mark[b[i]]=0;

for(int j=head[b[i]];j;j=next[j])

{

int u=point[j];

if(mark[u]==1)continue;

xx=find(b[i]);yy=find(u);

if(xx!=yy){father[xx]=yy;z++;}

}

xx=find(b[i]);yy=find(b[i-1]);

if(xx!=yy)

{

flag=1;break;

}

}

for(int i=1;i<=n;i++)if(find(i)!=find(b[1]))flag=1;

if(flag==1)printf("No\n");

else printf("Yes\n");

}

return 0;

}

ZOJ 3811 Untrusted Patrol【并查集】的更多相关文章

  1. ZOJ 3811 Untrusted Patrol The 2014 ACM-ICPC Asia Mudanjiang Regional First Round

    Description Edward is a rich man. He owns a large factory for health drink production. As a matter o ...

  2. zoj 3811 Untrusted Patrol(bfs或dfs)

    Untrusted Patrol Time Limit: 3 Seconds      Memory Limit: 65536 KB Edward is a rich man. He owns a l ...

  3. ZOJ 3811 Untrusted Patrol

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3811 解题报告:一个无向图上有n个点和m条边,其中有k个点上安装 ...

  4. ZOJ:2833 Friendship(并查集+哈希)

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2833 A friend is like a flower, a rose ...

  5. ZOJ 3321 Circle【并查集】

    解题思路:给定n个点,m条边,判断是否构成一个环 注意到构成一个环,所有点的度数为2,即一个点只有两条边与之相连,再有就是判断合并之后这n个点是否在同一个连通块 Circle Time Limit: ...

  6. zoj3811 Untrusted Patrol (dfs)

    2014牡丹江网络赛C题 (第三水的题 The 2014 ACM-ICPC Asia Mudanjiang Regional First Round http://acm.zju.edu.cn/onl ...

  7. 【转】并查集&MST题集

    转自:http://blog.csdn.net/shahdza/article/details/7779230 [HDU]1213 How Many Tables 基础并查集★1272 小希的迷宫 基 ...

  8. ZOJ 3811 / 2014 牡丹江赛区网络赛 C. Untrusted Patrol bfs/dfs/并查集

    Untrusted Patrol Time Limit: 3 Seconds                                     Memory Limit: 65536 KB    ...

  9. hdu 4424 & zoj 3659 Conquer a New Region (并查集 + 贪心)

    Conquer a New Region Time Limit: 8000/4000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others ...

随机推荐

  1. [ SNOI 2013 ] Quare

    Description 题目链接 求一张无向带权图的边双连通生成子图的最小代价. Solution 核心的思路是,一个点双连通分量肯定是一堆环的并. 考虑增量地构造这个边双连通图,每次把一个环并进去, ...

  2. js操作css样式、js的兼容问题

    一.js操作css样式 div . style . width="200px" 在div标签内我们添加了一个style属性,并设定width值.这种写法会给标签带来大量的style ...

  3. elasticsearch 2.4.0安装说明

    首先从官网下载安装包,是个压缩文件,然后解压 在es目录下找到es的配置文件 修改集群(cluster)名称 PS:一般情况下一台机只部署一个es程序,也就是一个集群,默认集群名是ewater_mai ...

  4. Linux 合并多个txt文件到一个文件

    Linux 或 类Unix 下实现合并多个文件内容到一个文件中 代码如下 cat b1.txt b2.txt b3.txt > b_all.txt 或者 cat *.txt > merge ...

  5. xcode6的项目中虚拟键盘无法弹出

    这是因为Xcode6中的模拟器键盘设置跟之前的版本不一样了.之前版本是模拟器的键盘和电脑的键盘都可以使用,但是Xcode6的模拟器键盘只能使用一种,即要么是模拟器键盘,要么是电脑键盘.快捷键切换键盘类 ...

  6. How `delete’ works ?

    这是2013年写的一篇旧文,放在gegahost.net上面 http://raison.gegahost.net/?p=21 February 16, 2013 How `delete’ works ...

  7. pspad的一个怪现象:在一些空行的位置出现个别不该出现的字符

    在用pspad编辑一个外来文件时,发现有许多空行的结尾会出现一些单个字符,字符内容与翻页前那一页相应位置的字符相同. 好奇怪.上网找不到原因.pspad太好用了,不想因此放弃. 仔细观察,这些空行往往 ...

  8. like SQL注入与防止 (bin2hex unhex)

    普通的列表模糊查询,可能会被sql注入利用,造成数据泄漏,严重的甚至导致删表删库! 程序中sql语句拼装: $sql = 'student_name like '"%'.$name.'%&q ...

  9. Sql Server数据库对象访问权限控制

    以下内容主要针对database层面的数据访问权限(比如select, insert, update, delete, execute…) 1.直接给user权限GRANT EXECUTE TO [u ...

  10. UGUI世界坐标转换为UI本地坐标

    以下是实现hud跟随3D物体的脚本,只是测试用,不是开发中的代码,脚本挂在任意游戏物体上 demo下载 using UnityEngine; public class SceneFollowUI : ...