博客
关于我
luogu P7262 Get Your Wish
阅读量:637 次
发布时间:2019-03-14

本文共 1977 字,大约阅读时间需要 6 分钟。

题目描述

Porter 在浅水上完成了他的 MV,但他很快发现了事情不对:他的话筒进水了。

Porter 的话筒内部的关键电子元件可以被看作一个 n\times mn×m 的二维平面。我们用一张 n\times mn×m 的字符画来表示 Porter 的话筒内部状况,其中有三种不同的字符:

.表示空位

x表示关键电子原件

o表示水滴

水滴会沿着重力方向一直流动,直到流出边界或者流到电子原件上。当水滴流到任意一个电子原件上时,Porter 的话筒就会坏掉。Porter 慌忙把话筒转过来,改变了话筒内部的重力方向。重力方向用四种字符之一表示:^v<>,分别对应上下左右。

Porter 想知道,在这种重力方向下,他的话筒过一会儿会不会 GG。

输入格式

第一行两个正整数和一个字符,分别代表 nn、mm 和重力方向。

接下来 nn 行,每行 mm 个字符,分别对应代表该点状态。

输出格式

输出一行一个字符串。GG 代表 Porter 的话筒会坏掉,OK 代表不会。

输入输出样例

输入 #1复制
3 3 v
.o.
xxx
输出 #1
GG
输入 #2
3 3 >
o.x
输出 #2
GG
输入 #3
3 3 ^
.o.
xxx
输出 #3
OK

说明/提示

样例解释
样例一:第一行第二列的水滴向下流到了最后一行第二列的电子原件上,因此话筒坏掉了。

样例二:第二行第一列的水滴向右流到了第二行最后一列的电子原件上,因此话筒坏掉了。

样例三:第一行第二列的水滴直接向上流出话筒,因此 Porter 的话筒不会坏掉。

数据范围

对于全部数据,保证 1\le n,m\le 1001≤n,m≤100,且输入数据合法。

Subtask 1 (10 pts):话筒中没有 x(即电子原件)。

Subtask 2 (10 pts):话筒中没有 o(即水滴)。

Subtask 3 (30 pts):保证重力方向总是 v(向下)。

Subtask 4 (50 pts):无特殊限制。

没错,很暴力就能解决。

但是,思维容易觉得只有一个水滴(虽然样例没有给出多多水滴应该是引导我们入这个坑),在暴力的时候千万要考虑多水滴情况就好了。

#include
#include
#include
#include
#include
#define LL long long#define M 400using namespace std;int n,m;int x=-1,y=-1;char a[1000][1000],c;int b[1000][4],tot=0;bool judge = true;void work(){ if( c=='v' ) { for(int j=x;j<=n;j++) { if( a[j][y] == 'x' ) { judge = false; return ; } } } if( c=='^' ) { for(int j=x;j>=1;j--) { if( a[j][y] == 'x' ) { judge = false; return ; } } } if( c=='<' ) { for(int j=y;j>=1;j--) { if( a[x][j]=='x' ) { judge = false; return ; } } } if( c=='>' ) { for(int j=y;j<=m;j++) { if( a[x][j]=='x' ) { judge = false; return ; } } }}int main(){ cin>>n>>m>>c; for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { cin>>a[i][j]; if( a[i][j] == 'o' ) { tot++; b[tot][1]=i; b[tot][2]=j; } } } if(tot!=0) for(int i=1;i<=tot;i++) { x = b[i][1]; y = b[i][2]; if(judge==true) work(); } if( judge==false ) printf("GG\n"); else printf("OK\n"); return 0;}

转载地址:http://wpvoz.baihongyu.com/

你可能感兴趣的文章
mysql中int、bigint、smallint 和 tinyint的区别、char和varchar的区别详细介绍
查看>>
mysql中json_extract的使用方法
查看>>
mysql中json_extract的使用方法
查看>>
mysql中kill掉所有锁表的进程
查看>>
mysql中like % %模糊查询
查看>>
MySql中mvcc学习记录
查看>>
mysql中null和空字符串的区别与问题!
查看>>
MySQL中ON DUPLICATE KEY UPDATE的介绍与使用、批量更新、存在即更新不存在则插入
查看>>
MYSQL中TINYINT的取值范围
查看>>
MySQL中UPDATE语句的神奇技巧,让你操作数据库如虎添翼!
查看>>
Mysql中varchar类型数字排序不对踩坑记录
查看>>
MySQL中一条SQL语句到底是如何执行的呢?
查看>>
MySQL中你必须知道的10件事,1.5万字!
查看>>
MySQL中使用IN()查询到底走不走索引?
查看>>
Mysql中使用存储过程插入decimal和时间数据递增的模拟数据
查看>>
MySql中关于geometry类型的数据_空的时候如何插入处理_需用null_空字符串插入会报错_Cannot get geometry object from dat---MySql工作笔记003
查看>>
mysql中出现Incorrect DECIMAL value: '0' for column '' at row -1错误解决方案
查看>>
mysql中出现Unit mysql.service could not be found 的解决方法
查看>>
mysql中出现update-alternatives: 错误: 候选项路径 /etc/mysql/mysql.cnf 不存在 dpkg: 处理软件包 mysql-server-8.0的解决方法(全)
查看>>
Mysql中各类锁的机制图文详细解析(全)
查看>>