COGS 1043. [Clover S2] Freda的迷宫
★ 输入文件:mazea.in 输出文件:mazea.out 简单对比
时间限制:1 s 内存限制:128 MB Freda 的迷宫
- (mazea.pas/.c/.cpp)
- 题目叙述
- Freda 是一个迷宫爱好者,她利用业余时间建造了许多迷宫。每个迷宫都是由若干房间
- 和走廊构成的,每条走廊都连接着两个不同的房间,两个房间之间最多只有一条走廊直接相
- 连,走廊都是双向通过。
- 黄昏时候,Freda 喜欢在迷宫当中漫步。每天,Resodo 都会为Freda 设计一个挑战方案。
- Resodo 会指定起点和终点,请Freda 来找到一条从起点到终点的简单路径。一条简单路径定
义为一个房间序列,每个房间至多在序列里出现一次,且序列中相邻的两个房间有走廊相连。
当起点和终点之间存在且仅存在一条简单路径的时候,Freda 认为这个挑战方案是RD 的。现
在,请你帮帮Resodo 来写一个程序,判断一个挑战方案是否是RD 的。
输入格式
第一行三个整数N,M,Q.分别表示房间数,走廊数,询问数。
接下来M 行每行2 个整数x,y, 0<x,y<=n, 表示x="" 和y="" 之间有一条走廊相连。<="" span="">
接下来Q 行每行2 个整数x,y, 表示询问以x 为起点,y 为终点的挑战方案是否是RD 的.
- 输出格式
- 对于每个询问,输出一行”Y”或者”N”(不含引号).Y 表示该询问所表示的挑战方案
- 是RD 的,N 表示该询问所表示的挑战方案不是RD 的.
- 输入样例
- 6 5 3
- 1 2
- 2 3
2 4
2 5
4 5
1 3
1 5
2 6
输出样例
Y
N
N
样例解释
1,3 之间只有一条路径1->2->3
1,5 之间有两条路径1->2->5 ; 1->2->4->5
1,6 之间没有路径
数据范围与约定
对于30%的数据,N<=100, M<=1000, Q<=100.
对于50%的数据,N<=1000, M<=10000, Q<=1000.
对于100%的数据,N<=10000, M<=100000, Q<=10000.
tarjan求桥
Rank1( 偷笑 )
#include <cstdio>
#define N 200005 int n,m,q,cnt,tim,fa[N],to[N<<],dfn[N],low[N],head[N],nextt[N<<];
void ins(int u,int v)
{
nextt[++cnt]=head[u];to[cnt]=v;head[u]=cnt;
nextt[++cnt]=head[v];to[cnt]=u;head[v]=cnt;
}
int find_(int x) {return x==fa[x]?x:fa[x]=find_(fa[x]);}
inline int min(int a,int b) {return a>b?b:a;}
void tarjan(int x,int pre)
{
low[x]=dfn[x]=++tim;
for(int i=head[x];i;i=nextt[i])
{
int v=to[i];
if(v==pre) continue;
if(!dfn[v])
{
tarjan(v,x);
low[x]=min(low[x],low[v]);
if(low[v]>dfn[x]) fa[find_(v)]=find_(x);
}
else if(v!=pre) low[x]=min(low[x],dfn[v]);
}
}
int Main()
{
freopen("mazea.in","r",stdin);
freopen("mazea.out","w",stdout);
scanf("%d%d%d",&n,&m,&q);
for(int u,v;m--;)
{
scanf("%d%d",&u,&v);
ins(u,v);
}
for(int i=;i<=n;++i) fa[i]=i;
for(int i=;i<=n;++i)
if(!dfn[i]) tarjan(i,);
for(int x,y;q--;)
{
scanf("%d%d",&x,&y);
if(find_(x)==find_(y)) puts("Y");
else puts("N");
}
return ;
}
int sb=Main();
int main(int argc,char *argv[]) {;}
COGS 1043. [Clover S2] Freda的迷宫的更多相关文章
- 【CSP模拟赛】Freda的迷宫(桥)
题目描述 Freda是一个迷宫爱好者,她利用业余时间建造了许多迷宫.每个迷宫都是由若干房间和走廊构成的,每条走廊都连接着两个不同的房间,两个房间之间最多只有一条走廊直接相连,走廊都是双向通过. 黄昏 ...
- Tarjan 求图点强联通,桥的应用
在图中求双联通和强联通分量是我们解决非树结构的图连通问题的利器 通过求求图的双联通和强联通分量能把图转化成DAG进行求解: 行走 Description 给出一个有向图,你可以选择从任意点出发走到任意 ...
- cogs 997. [東方S2] 射命丸文
二次联通门 : cogs 997. [東方S2] 射命丸文 /* cogs 997. [東方S2] 射命丸文 二维前缀和 枚举每个子矩阵 更新最大值.. 莫名rank1 */ #include < ...
- cogs 998. [東方S2] 帕秋莉·诺蕾姬
二次联通门 : cogs 998. [東方S2] 帕秋莉·诺蕾姬 交上去后发现自己没上榜 就想着加点黑科技 把循环展开一下 结果WA了.. 万恶的姆Q /* cogs 998. [東方S2] 帕秋莉· ...
- cogs 999. [東方S2]雾雨魔理沙
二次联通门 : cogs 999. [東方S2]雾雨魔理沙 摸你傻赛高!! /* cogs 999. [東方S2]雾雨魔理沙 原来以为是一道计算几何的题 可是细细一想发现.. 这就是一道dp 由于给定 ...
- Cogs 309. [USACO 3.2] 香甜的黄油 dijkstra,堆,最短路,floyd
题目:http://cojs.tk/cogs/problem/problem.php?pid=309 309. [USACO 3.2] 香甜的黄油 ★★ 输入文件:butter.in 输出文件 ...
- 1043 - Triangle Partitioning(数学)
1043 - Triangle Partitioning PDF (English) Statistics Forum Time Limit: 0.5 second(s) Memory Limit ...
- 【搜索1】P1605 迷宫
题目背景 迷宫 [问题描述] 给定一个N*M方格的迷宫,迷宫里有T处障碍,障碍处不可通过.给定起点坐标和 终点坐标,问: 每个方格最多经过1次,有多少种从起点坐标到终点坐标的方案.在迷宫 中移动有上下 ...
- POJ-1077 HDU 1043 HDU 3567 Eight (BFS预处理+康拓展开)
思路: 这三个题是一个比一个令人纠结呀. POJ-1077 爆搜可以过,94ms,注意不能用map就是了. #include<iostream> #include<stack> ...
随机推荐
- jQuery插件AjaxFileUpload可以实现ajax文件上传
http://blog.sina.com.cn/s/blog_55e42da60100ocvh.html
- C# 外观模式
外观模式(Facade Pattern) 介绍 定义: 为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用.使用外观模式时,创建了一个统一的类,用来 ...
- HBase HA + Hadoop HA 搭建
HBase 使用的是 1.2.9 的版本. Hadoop HA 的搭建见我的另外一篇:Hadoop 2.7.3 HA 搭建及遇到的一些问题 以下目录均为 HBase 解压后的目录. 1. 修改 co ...
- Web攻击技术---OWASP top
整理OWASP top 10 部分内容,方便日后查看.想深入了解的,请移步参考中的网站. OWASP Top 10 注入 将不受信任的数据作为命令或者查询的一部分发送到解析器时,会发生诸如SQL注入. ...
- [Leetcode]011. Container With Most Water
public class Solution { public int maxArea(int[] height) { int left = 0, right = height.length - 1; ...
- ACM-ICPC 2018 徐州赛区网络预赛-G Trace(线段树的应用
Problem:Portal传送门 Problem:Portal传送门 原题目描述在最下面. 我理解的题意大概是:有n次涨潮和退潮,每次的范围是个x×y的矩形,求n次涨退潮后,潮水痕迹的长度. ...
- scala数据类型
# Scala数据类型 ## 1.数值类型 ### 1.1 与Java一样Scala也有8种数值类型 * Byte * Char * Short * Int * Long * Float * Doub ...
- Java面向对象_常用类库api——日期操作类
Data类 类Data表示特定的瞬间,精确到毫秒,也就是程序运行时的当前时间 Data data=new Data();//实例化Data对象,表示当前时间 Calendar类 日历类,使用此类可以将 ...
- 《从0到1学习Flink》—— Flink 项目如何运行?
前言 之前写了不少 Flink 文章了,也有不少 demo,但是文章写的时候都是在本地直接运行 Main 类的 main 方法,其实 Flink 是支持在 UI 上上传 Flink Job 的 jar ...
- Maven的学习资料收集--(三)使用Maven构建Web项目
新建Maven项目 File - New - Other 选择Maven Project 单击Next 保持默认即可单击Next 选择Archetype为 web app单击Next 输入一些必要信息 ...