这题就是考察什么时候建边,貌似和搜索没有半毛钱关系 \(\operatorname{qwq}\)

首先没有传感器的房间是可以随便走来走去的,因为我们不用考虑顺序。于是就考虑先把这些点的相互的边给建起来。

接下来分析一波,对于第 \(i\) 个得到信息的房间,我们绝对不能在此之前经过第 \(i+1\) ~ \(k\) 的房间。所以,除了这些房间,我们将其余所有连边,再判断第 \(i-1\) 个房间能否到 \(i\) 房间即可。

因为只要判断房间之间的连通性,用冰茶机来维护是再好不过了。

\(\operatorname{Code:}\)

#include<bits/stdc++.h>
using namespace std;
inline int read(){
register int s=0,f=1;
register char ch=getchar();
while(!isdigit(ch)){if(ch=='-')f*=-1;ch=getchar();}
while(isdigit(ch))s=(s<<1)+(s<<3)+(ch^48),ch=getchar();
return s*f;
}
const int max_n=100000+5;
int a[max_n],par[max_n],vis[max_n];//par表示祖先,vis表示哪些点可以连
vector<int>Next[max_n];
int find(int x){
if(x==par[x])return x;//找到祖先
return par[x]=find(par[x]);//路径压缩
}
void merge(int x,int y){
x=find(x),y=find(y);//找祖先
if(x==y)return;//同一个祖先?大雾
par[y]=x;
}
void add(int x){//找所有和x联通并可以连边的点
for(int i=0;i<Next[x].size();i++){
if(vis[Next[x][i]]==0)merge(x,Next[x][i]);//可以连就连
}
}
int main(){
int n=read(),m=read(),k=read(),T=read();
while(m--){
int x=read(),y=read();
Next[x].push_back(y);
Next[y].push_back(x);
}
while(T--){
for(int i=1;i<=n;i++)par[i]=i;//冰茶机的初始化qwq
for(int i=1;i<=k;i++){
a[i]=read(),vis[a[i]]=1;//标记这个点不能连
}
for(int i=1;i<=n;i++){
if(vis[i]==0)add(i);
}
vis[a[1]]=0,add(a[1]);
for(int i=2;i<=k;i++){
vis[a[i]]=0,add(a[i]);//连上这个点
if(find(a[i])!=find(a[i-1])){puts("No");break;}//连不同就凉了
if(i==k)puts("Yes");
}
}
return 0;
}

于是 \(50\) 行就切掉了这道紫题真香

\(\operatorname{Update}\) \(\operatorname{On}\) \(\operatorname{2019.08.27}\)

题解 洛谷P2189 【小Z的传感器】的更多相关文章

  1. Bzoj2038/洛谷P1494 小Z的袜子(莫队)

    题面 Bzoj 洛谷 题解 考虑莫队算法,首先对询问进行分块(分块大小为\(sqrt(n)\)),对于同一个块内的询问,按照左端点为第一关键字,右端点为第二关键字排序.我们统计这个区间内相同的颜色有多 ...

  2. 洛谷 2186 小Z的栈函数

    https://www.luogu.org/problem/show?pid=2186 题目描述 小Z最近发现了一个神奇的机器,这个机器的所有操作都是通过维护一个栈来完成的,它支持如下11个操作: N ...

  3. 洛谷——P2117 小Z的矩阵

    P2117 小Z的矩阵 题目描述 小Z最近迷上了矩阵,他定义了一个对于一种特殊矩阵的特征函数G.对于N*N的矩阵A,A的所有元素均为0或1,则G(A)等于所有A[i][j]*A[j][i]的和对2取余 ...

  4. 洛谷P2188 小Z的 k 紧凑数

    P2188 小Z的 k 紧凑数 题目描述 小 Z 在草稿纸上列出了很多数,他觉得相邻两位数字差的绝对值不超过 k 的整数特别奇特,称其为 k 紧凑数. 现在小 Z 想知道 [l,r] 内有多少个 k ...

  5. 洛谷—— P2117 小Z的矩阵

    https://www.luogu.org/problemnew/show/2117 题目描述 小Z最近迷上了矩阵,他定义了一个对于一种特殊矩阵的特征函数G.对于N*N的矩阵A,A的所有元素均为0或1 ...

  6. 洛谷 P2117 小Z的矩阵

    P2117 小Z的矩阵 题目描述 小Z最近迷上了矩阵,他定义了一个对于一种特殊矩阵的特征函数G.对于N*N的矩阵A,A的所有元素均为0或1,则G(A)等于所有A[i][j]*A[j][i]的和对2取余 ...

  7. 洛谷 2187 小Z的笔记

    [题解] DP.  设f[i]表示前i个字母,保留第i个字母,最多可以保留多少个字母:设g[i]为当前字母为i的位置对应的f的最大值. 转移方程就是f[i]=max(f[i], g[j]+1) (j与 ...

  8. [洛谷P2174]小Z的神奇数列

    题目大意:有$n(n\leqslant10^6)$个数,$5$种操作: $D\;x:$从数列中删除$x$,相同的数只删除一个 $B:$最大值 $S:$最小值 $M:$输出$max^{min}\pmod ...

  9. [洛谷P2186] 小Z的栈函数

    题目链接: 传送门 题目分析: 大模拟,先得存操作,然后再处理每个数-- 有一个小优化,在处理操作的时候顺便判一下最后栈里是不是有且仅有一个数,但A完了才想起来,所以就算了-- 总之就是个模拟题--没 ...

随机推荐

  1. 阿里云使用Docker部署工单系统(redmine)

    环境:阿里云服务器 Redmine安装部署 Redmine是用Ruby开发的基于web的项目管理软件,是用ROR框架开发的一套跨平台项目管理系统,据说是源于Basecamp的ror版而来,支持多种数据 ...

  2. 【RSR】RSR如何配置BGP与BFD联动(动态路由)

    应用场景 企业租用运营商MSTP线路,配置BGP路由协议上网,由于企业本端出口路由器无法检测到运营商中间链路通信中断,导致路由收敛缓慢,无法快速的切换到其它备份线路,此时可以在路由器上启用BGP与BF ...

  3. 【剑指offer】面试题 20. 表示数值的字符串

    面试题 20. 表示数值的字符串

  4. KAFA架构及其基本概念

    1.目标 - KAFA价格 在我们上一篇Kafka教程中,我们讨论了Kafka用例和应用程序.今天,在这个Kafka教程中,我们将讨论Kafka Architecture.在这篇Kafka Archi ...

  5. Django 报错 admin.E408 admin.E409 admin.E410

    报错内容 ERRORS: ?: (admin.E408) 'django.contrib.auth.middleware.AuthenticationMiddleware' must be in MI ...

  6. Linux jdk8 安装

    wegt 命令安装 wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.o ...

  7. WPF内嵌网页的两种方式

    在wpf程序中,有时会内嵌网页.内嵌网页有两种方法,一种是使用wpf自带WebBrowser控件来调用IE内核,另一种是使用CefSharp包来调用chrom内核. 一.第一种使用自带WebBrows ...

  8. Spring Cloud Alibaba学习笔记(19) - Spring Cloud Gateway 自定义过滤器工厂

    在前文中,我们介绍了Spring Cloud Gateway内置了一系列的内置过滤器工厂,若Spring Cloud Gateway内置的过滤器工厂无法满足我们的业务需求,那么此时就需要自定义自己的过 ...

  9. WPF 不要给 Window 类设置变换矩阵(应用篇)

    原文:WPF 不要给 Window 类设置变换矩阵(应用篇) WPF 的 Window 类是不允许设置变换矩阵的.不过,总会有小伙伴为了能够设置一下试图绕过一些验证机制. 不要试图绕过,因为你会遇到更 ...

  10. .net core使用ocelot---第三篇 日志记录

    简介 .net core使用ocelot---第一篇 简单使用 .net core使用ocelot---第二篇 身份验证使用 上篇介绍使用asp.net core 创建API网关.本文将介绍Ocelo ...