5578 咸鱼

 时间限制: 1 s
 空间限制: 128000 KB
 
题目描述 Description

在广袤的正方形土地上有n条水平的河流和m条垂直的河流,发达的咸鱼家族在m*n个河流交叉点都建立了城市。然而,由于河流有单一的流向,而咸鱼们却没有发达的下体,所以只能顺流而下。两两河流之间的流向互不影响。

现在,咸鱼冒险家Sorey决定出发去看看这个世界,但是Sorey担心自己可能被困在某个城市而无法回归自己的家乡。于是Sorey夜观天象,搞清楚了每条河的流向,他想请你帮他判断他的旅途是否会顺利。

输入描述 Input Description

第一行一个整数T,表示数据组数(T<=10)

每组数据第一行两个整数n,m,含义如上述

第二行两个整数x,y,表示Sorey的初始坐标(从一开始,x表示所在行,y表示所在列)

下一行n个数,之间用空格间隔,其中第i个表示第i条水平河流的方向,0向左,1向右

下一行m个数,之间用空格间隔,其中第i个表示第i条垂直河流的方向,0向下,1向上

输出描述 Output Description

一组数据一行

如果Sorey能到达任何一座城市且不可能被困住的话,输出"Yes.",否则输出"No."(不含引号)

样例输入 Sample Input

1

4 6

1 1

0 1 0 1

0 1 0 1 0 1

样例输出 Sample Output

Yes.

数据范围及提示 Data Size & Hint

样例如图

对于40%的数据n,m<100,T=1;

对于60%的数据n,m<1000;

对于100%的数据2<=n,m<=1000000,1<=x<=n,1<=y<=m;

数据很大,注意读入优化

分析:

“咸鱼们却没有发达的下体”以及Yes后面的句号,槽点还是挺多的。数据范围很大,应该是结论题

推论1:

  看这句话“但是Sorey担心自己可能被困在某个城市而无法回归自己的家乡”以及“如果Sorey能到达任何一座城市且不可能被困住的话,输出"Yes.",否则输出"No."(不含引号)”,显然题目要求我们判断是否可以从源点s到任何一个点且可以从任何一个点回到源点s,即任意两点i,j互相可达(i到s,再s到j),所以,要求原图是强连通分量。用tarjan算法即可判断。但是复杂度O(nm),只有60分。

推论2:

  我们必须优化到O(n)或以下,考虑特判,看了一下样例发现:只需要最外围是一个环就一定满足,因为从s沿边走就一定可以到外围,在外围绕圈到每一条边的入口即可进去。

推论3:

  充分性已证,只需完备性即可:只要最外围不是环,那么四个顶角必然有的只能进不能出,不可能是强连通分量。

  现在只需要判断最外围是不是环即可,复杂度O(1),但数据太大,要优化读入,可以用fseek跳过中间部分,用getchar()也能过(偷懒的我用的后者,复杂度O(n+m))

 #include<cstdio>
inline int read(){
char c=getchar();
while(c!=''&&c!='') c=getchar();
return c-'';
}
int main(){
int n,m,x,y,a,b,c,d,T;
scanf("%d",&T);
while(T--){
scanf("%d %d %d %d",&n,&m,&x,&y);
a=read();n-=;
while(n--) read();
b=read();c=read();m-=;
while(m--) read();
d=read();
if((a==&&b==&&c==&&d==)||
(a==&&b==&&c==&&d==)) printf("Yes.\n");
else printf("No.\n");
}
return ;
}

[codevs5578][咸鱼]tarjan/结论题的更多相关文章

  1. BZOJ_1367_[Baltic2004]sequence_结论题+可并堆

    BZOJ_1367_[Baltic2004]sequence_结论题+可并堆 Description Input Output 一个整数R Sample Input 7 9 4 8 20 14 15 ...

  2. [BZOJ3609][Heoi2014]人人尽说江南好 结论题

    Description 小 Z 是一个不折不扣的 ZRP(Zealot Round-game Player,回合制游戏狂热玩家), 最近他 想起了小时候在江南玩过的一个游戏.     在过去,人们是要 ...

  3. 【uoj#282】长度测量鸡 结论题

    题目描述 给出一个长度为 $\frac{n(n+1)}2$ 的直尺,要在 $0$ 和 $\frac{n(n+1)}2$ 之间选择 $n-1$ 个刻度,使得 $1\sim \frac{n(n+1)}2$ ...

  4. 【uoj#175】新年的网警 结论题+Hash

    题目描述 给出一张 $n$ 个点 $m$ 条边的无向连通图,每条边的边权为1.对于每个点 $i$ ,问是否存在另一个点 $j$ ,使得对于任意一个不为 $i$ 或 $j$ 的点 $k$ ,$i$ 到 ...

  5. 【uoj#180】[UR #12]实验室外的攻防战 结论题+树状数组

    题目描述 给出两个长度为 $n$ 的排列 $A$ 和 $B$ ,如果 $A_i>A_{i+1}$ 则可以交换 $A_i$ 和 $A_{i+1}$ .问是否能将 $A$ 交换成 $B$ . 输入 ...

  6. 【bzoj4401】块的计数 结论题

    题目描述 给出一棵n个点的树,求有多少个si使得整棵树可以分为n/si个连通块. 输入 第一行一个正整数N,表示这棵树的结点总数,接下来N-1行,每行两个数字X,Y表示编号为X的结点与编号为Y的结点相 ...

  7. 【bzoj3997】[TJOI2015]组合数学 Dilworth定理结论题+dp

    题目描述 给出一个网格图,其中某些格子有财宝,每次从左上角出发,只能向下或右走.问至少走多少次才能将财宝捡完.此对此问题变形,假设每个格子中有好多财宝,而每一次经过一个格子至多只能捡走一块财宝,至少走 ...

  8. 【bzoj2079】[Poi2010]Guilds 构造结论题

    题目描述 Zy皇帝面临一个严峻的问题,两个互相抵触的贸易团体,YYD工会和FSR工会,他们在同一时间请求在王国各个城市开办自己的办事处.这里有n个城市,其中有一些以双向马路相连,这两个工会要求每个城市 ...

  9. agc015F - Kenus the Ancient Greek(结论题)

    题意 题目链接 $Q$组询问,每次给出$[x, y]$,定义$f(x, y)$为计算$(x, y)$的最大公约数需要的步数,设$i \leqslant x, j \leqslant y$,求$max( ...

随机推荐

  1. Python 从sketch中读取文件

    =============================== RESTART: Shell =============================== >>> import o ...

  2. 打开SDK Manager检查Android SDK下载和更新失败的解决方法

    [故障描述] 打开SDK Manager检查Android  SDK状况,出现以下情况: Failed to fetch URL https://dl-ssl.google.com/android/r ...

  3. 黄聪:WordPress 多站点建站教程(五):获取子站点用户信息(通过输入站点ID号来获取该站点的所有用户)

    得到站点ID为1的用户 <ul> <?php $blogusers = get_users('blog_id=1'); foreach ($blogusers as $user) { ...

  4. c++101rule

    组织策略0,不拘于小结缩进, 行的长度,命名,注释,空格,制表,1-4,高警告级别干净利落地进行编译,使用构建系统,使用版本控制,代码审查风格5,一个实体应该只有一个紧凑的职责. (依赖性管理,继承, ...

  5. 转--Invalidate和postInvalidate的更新view区别

    Android中实现view的更新有两组方法,一组是invalidate,另一组是postInvalidate,其中前者是在UI线程自身中使用,而后者在非UI线程中使用. Android提供了Inva ...

  6. 通讯簿(apple)

    ylbtech-dbs:ylbtech-cnblogs(博客园)-2,Admin(用户后台) DatabaseName:Contacts/通讯簿(iOS) 1.A,数据库关系图(Database Di ...

  7. 在Linux环境下安装和配置phpmyadmin

    phpmyadmin是一种MySQL的图形化管理工具,该工具允许你在web界面上管理你的mysql数据库,不可谓不方便快捷. 此次安装与配置是在centos 6.4系统下,该系统已部署lnmp环境.关 ...

  8. android之RatingBar控件用法

    MainActivity.java package com.example.mars_2500_ratingbar; import android.support.v7.app.ActionBarAc ...

  9. iOS8 StoryBoard 连线diss方法

    添加自定义Dismiss类: //  Dismiss.h //  StoryBoardTest // //  Created by zhujin on 14/12/23. //  Copyright ...

  10. php中soap的使用实例以及生成WSDL文件,提供自动生成WSDL文件的类库——SoapDiscovery.class.php类

    1. web service普及: Webservice soap wsdl区别之个人见解 Web Service实现业务诉求:  Web Service是真正“办事”的那个,提供一种办事接口的统称. ...