Rocky(模拟)
http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2718
题意:如果没有障碍就按原方向直走,否则就右转直走,若右边走不通就左转直走,若左边也走不通就后转直走,直到走出去。
#include <stdio.h>
#include <string.h>
const int N=;
using namespace std;
int a[N][N];
int main()
{
int n,m,k,x,y,p=;
while(~scanf("%d %d %d",&n,&m,&k))
{
p++;
if (n==&&m==&&k==)
break;
memset(a,,sizeof(a));
for (int j = ; j <= m+; j++)
{
a[][j] = ;
a[n+][j] = ; }
for (int i = ; i <= n+; i++)
{
a[i][] = ;
a[i][m+] = ;
}
for (int i = ; i < k; i ++)
{
scanf("%d %d",&x,&y);
a[x][y] = -;
}
int dir;
scanf("%d %d",&x,&y);
if (x==)
dir = ;
else if (x==n)
dir = ;
else if (y==m)
dir = ;
else if (y==)
dir = ;
int cnt = ;
while(a[x][y]!= )
{
cnt++;
if (dir==)
{
if (a[x+][y]!=-)
{
x++;
dir = ;
}
else
{
if (a[x][y-]!=-)
{
y--;
dir = ;
}
else
{
if (a[x][y+]!=-)
{
y++;
dir = ;
}
else
{ x--;
dir = ;
}
}
}
}
else if (dir==)
{
if (a[x][y-]!=-)
{
y--;
dir = ;
}
else
{
if (a[x-][y]!=-)
{
x--;
dir = ;
}
else
{
if (a[x+][y]!=-)
{
x++;
dir = ;
}
else
{
y++;
dir = ;
}
}
} }
else if (dir==)
{
if (a[x-][y]!=-)
{
x--;
dir = ;
}
else
{
if (a[x][y+]!=-)
{
y++;
dir = ;
}
else
{
if (a[x][y-]!=-)
{
y--;
dir = ;
}
else
{
x++;
dir = ;
}
}
}
}
else
{
if (a[x][y+]!=-)
{
y++;
dir = ;
}
else
{
if (a[x+][y]!=-)
{
x++;
dir = ;
}
else
{
if (a[x-][y]!=-)
{
x--;
dir = ;
}
else
{
y--;
dir = ;
}
}
}
}
}
if (dir==)
x--;
else if (dir==)
y++;
else if (dir==)
x++;
else
y--;
printf("Case %d: %d %d %d\n",p,x,y,cnt);
}
return ;
}
Rocky(模拟)的更多相关文章
- 中国海洋大学第四届朗讯杯高级组 A 2718 Rocky(模拟)
题目:http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2718 题意:优先直走,右 左 后.... ...
- 2015 UESTC Winter Training #8【The 2011 Rocky Mountain Regional Contest】
2015 UESTC Winter Training #8 The 2011 Rocky Mountain Regional Contest Regionals 2011 >> North ...
- HUNNU11342:Chemistry(模拟)
http://acm.hunnu.edu.cn/online/?action=problem&type=show&id=11342 Problem description The ch ...
- Rocky之Mysql-MHA高可用
9.半同步复制 安装插件三种方法: 第一种: mysql>INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so' 安装 在 ...
- App开发:模拟服务器数据接口 - MockApi
为了方便app开发过程中,不受服务器接口的限制,便于客户端功能的快速测试,可以在客户端实现一个模拟服务器数据接口的MockApi模块.本篇文章就尝试为使用gradle的android项目设计实现Moc ...
- 故障重现, JAVA进程内存不够时突然挂掉模拟
背景,服务器上的一个JAVA服务进程突然挂掉,查看产生了崩溃日志,如下: # Set larger code cache with -XX:ReservedCodeCacheSize= # This ...
- Python 爬虫模拟登陆知乎
在之前写过一篇使用python爬虫爬取电影天堂资源的博客,重点是如何解析页面和提高爬虫的效率.由于电影天堂上的资源获取权限是所有人都一样的,所以不需要进行登录验证操作,写完那篇文章后又花了些时间研究了 ...
- HTML 事件(四) 模拟事件操作
本篇主要介绍HTML DOM中事件的模拟操作. 其他事件文章 1. HTML 事件(一) 事件的介绍 2. HTML 事件(二) 事件的注册与注销 3. HTML 事件(三) 事件流与事件委托 4. ...
- 模拟AngularJS之依赖注入
一.概述 AngularJS有一经典之处就是依赖注入,对于什么是依赖注入,熟悉spring的同学应该都非常了解了,但,对于前端而言,还是比较新颖的. 依赖注入,简而言之,就是解除硬编码,达到解偶的目的 ...
随机推荐
- Memcached 在Linux上的安装
1.安装libevent wget https://github.com/libevent/libevent/releases/download/release-2.1.8-stable/libeve ...
- js-2018-11-01 关于break和continue语句
1.label语句 语法:label: statement 加标签语句一般都要与for语句等循环语句配合使用. 2.break语句 立即退出循环,强制执行循环后面的语句. 3.continue语句 立 ...
- C++中的各种进制转换函数汇总及学习
一.指定格式输出 1.C中指定格式输出 printf(); //按八进制格式输出,保留5位高位补零 printf(); //按十进制格式输出,保留3位高位补零 printf(); //按十六进制格式输 ...
- Linux之强大的selinux
简单点说,SELinux就是用来加强系统安全性的.它给一些特定程序(这些程序也在不断增加)做了一个沙箱,它将文件打上了一个安全标签,这些标签属于不同的类,也只能执行特定的操作,也就是规定了某个应用程序 ...
- redis环境部署
运维开发技术交流群欢迎大家加入一起学习(QQ:722381733) 一.Redis服务介绍: redis简单来讲就是一个数据库,一个用来存储缓存的数据库容器,主要是让项目数据能写进缓存,为用户提搞更舒 ...
- 00.continue break return的使用场景
continue continue 语句跳出本次循环,而break跳出整个循环. continue 语句用来告诉Python跳过当前循环的剩余语句,然后继续进行下一轮循环. continue语句用在w ...
- 【codeforces 508A】Pasha and Pixels
[题目链接]:http://codeforces.com/contest/508/problem/A [题意] 让你在一个n*m的方格上给方格染色; 顺序给出染色的k个格子 如果在某一时刻 有一个2* ...
- 如何在Tomcat (6/7/8.0) 安装SSL证书
第一步:进入Tomcat安装目录,把证书的jks格式文件放在tomcat安装目录的conf目录下即可. conf/ssl/371cloud.cn.jks 第二步: 打开tomcat配置文件 conf/ ...
- MG loves string
MG loves string Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others ...
- Jzzhu and Numbers
Jzzhu and Numbers time limit per test 2 seconds memory limit per test 256 megabytes input standard i ...