题目:http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2718

题意:优先直走,右 左 后。。。。

思路:

我定义的朝向 已经 d[]的先后次序。。。。。

  3  
2   1
  4  
 #include <cstring>
#include <cstdio>
using namespace std; int dx[]={,,-,,};
int dy[]={,,,,-};
struct node
{
int x,y,tow,step;
}pos,before;
int main()
{
int i,col,row,r;
int G[][];
int x,y,sx,sy,f,count=;
while(~scanf("%d%d%d",&col,&row,&r)&&(col||row||r))
{
memset(G,,sizeof(G));
for(i=; i<r; i++)
{
scanf("%d%d",&x,&y);
G[x][y]=;
}
scanf("%d%d",&sx,&sy);
if(sx==)
f=;
else if(sx==col)
f=;
else if(sy==)
f=;
else if(sy==row)
f=;
pos.step=; pos.tow=f;
pos.x=sx; pos.y=sy;
for(i=; ;i++)
{
if(pos.tow==)
{
if(pos.x>=col)
break;
if(G[pos.x+dx[]][pos.y+dy[]]==)
{
pos.x=pos.x+dx[];
pos.y=pos.y+dy[];
pos.step++;
}
else if(G[pos.x+dx[]][pos.y+dy[]]==)
{
pos.x=pos.x+dx[];
pos.y=pos.y+dy[];
pos.step++;
pos.tow=;
}
else if(G[pos.x+dx[]][pos.y+dy[]]==)
{
pos.x=pos.x+dx[];
pos.y=pos.y+dy[];
pos.step++;
pos.tow=;
}
else if(G[pos.x+dx[]][pos.y+dy[]]==)
{
pos.x=pos.x+dx[];
pos.y=pos.y+dy[];
pos.step++;
pos.tow=;
}
}
else if(pos.tow==)
{
if(pos.x<=)
break;
if(G[pos.x+dx[]][pos.y+dy[]]==)
{
pos.x=pos.x+dx[];
pos.y=pos.y+dy[];
pos.step++;
}
else if(G[pos.x+dx[]][pos.y+dy[]]==)
{
pos.x=pos.x+dx[];
pos.y=pos.y+dy[];
pos.step++;
pos.tow=;
}
else if(G[pos.x+dx[]][pos.y+dy[]]==)
{
pos.x=pos.x+dx[];
pos.y=pos.y+dy[];
pos.step++;
pos.tow=;
}
else if(G[pos.x+dx[]][pos.y+dy[]]==)
{
pos.x=pos.x+dx[];
pos.y=pos.y+dy[];
pos.step++;
pos.tow=;
}
}
else if(pos.tow==)
{
if(pos.y>=row)
break;
if(G[pos.x+dx[]][pos.y+dy[]]==)
{
pos.x=pos.x+dx[];
pos.y=pos.y+dy[];
pos.step++;
}
else if(G[pos.x+dx[]][pos.y+dy[]]==)
{
pos.x=pos.x+dx[];
pos.y=pos.y+dy[];
pos.step++;
pos.tow=;
}
else if(G[pos.x+dx[]][pos.y+dy[]]==)
{
pos.x=pos.x+dx[];
pos.y=pos.y+dy[];
pos.step++;
pos.tow=;
}
else if(G[pos.x+dx[]][pos.y+dy[]]==)
{
pos.x=pos.x+dx[];
pos.y=pos.y+dy[];
pos.step++;
pos.tow=;
}
}
else if(pos.tow==)
{
if(pos.y<=)
break;
if(G[pos.x+dx[]][pos.y+dy[]]==)
{
pos.x=pos.x+dx[];
pos.y=pos.y+dy[];
pos.step++;
}
else if(G[pos.x+dx[]][pos.y+dy[]]==)
{
pos.x=pos.x+dx[];
pos.y=pos.y+dy[];
pos.step++;
pos.tow=;
}
else if(G[pos.x+dx[]][pos.y+dy[]]==)
{
pos.x=pos.x+dx[];
pos.y=pos.y+dy[];
pos.step++;
pos.tow=;
}
else if(G[pos.x+dx[]][pos.y+dy[]]==)
{
pos.x=pos.x+dx[];
pos.y=pos.y+dy[];
pos.step++;
pos.tow=;
}
}
if(pos.x>=&&pos.x<=col&&pos.y>=&&pos.y<=row)
{
before.x=pos.x; before.y=pos.y;
}
}
printf("Case %d: ",count++);
if(pos.x>=&&pos.x<=col&&pos.y>=&&pos.y<=row)
printf("%d %d %d\n",pos.x,pos.y,pos.step);
else
printf("%d %d %d\n",before.x,before.y,pos.step-);
}
return ;
}

中国海洋大学第四届朗讯杯高级组 A 2718 Rocky(模拟)的更多相关文章

  1. 中国海洋大学第四届朗讯杯高级组 Cash Cow(模拟)

    题目:http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2721 题意: 给定n个左标,跟那n个坐标 ...

  2. 中国海洋大学第四届朗讯杯高级组 I Cuckoo for Hashing

    http://acm.sdut.edu.cn/sdutoj/showproblem.php?pid=2719&cid=1203 题意 :意思就是哈希来的,具体大意就是说有两个哈希表,然后有这样 ...

  3. 中国海洋大学第四届朗讯杯高级组 A Rocky

    http://acm.sdut.edu.cn/sdutoj/showproblem.php?pid=2718&cid=1203 题意:给你一个m乘n的格子阵,从一边进去,直线往前走,如果前边有 ...

  4. 腾讯云 安全组配置及与MySQL 远程登录失败原因浅析

    前言,知道自己腾讯云服务器安全组配置并在安全组里开放了所有端口的用户可以粗略的看看下边的内容,否则就仔细看看吧. 因为有学习及业务需要,我要在腾讯云上安装了CentOS7.2版本的服务器上安装MySQ ...

  5. 第四届蓝桥杯C++B组省赛

    1.高斯日记 2.马虎的算式 3.第39级台阶 4.黄金连分数 5.前缀判断 6.三部排序 7.错误票据 8.翻硬币 9.带分数 10.连号区间数

  6. 第四届蓝桥杯C++B组国(决)赛真题

    解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1.猜灯谜 A 村的元宵节灯会上有一迷题: 请猜谜 * 请猜谜 = 请边赏灯边猜 小明想,一定是每个汉字代表一个数字,不同的汉字代表不同的 ...

  7. CF 3-6 2级组 D题 STRESSFUL TRAINING 紧张的比赛

    题目大概是这样的: 给出一个数列a[n] ,对于每一个数 a [i] 来说 都会在 T - - 时 -= b[i] 每个数都在任何时刻不能小于0 你可以在每次T - - 之前时给 一 个 a[i] + ...

  8. [2020年10月28日普级组]1405.小B浇花

    区 间 和 的 和 区间和的和 区间和的和 题目解析 就直接模拟,从最低的花的高度向最高的花的高度枚举,如果当循环变量的值到达了顶峰,但还有花的数量大于2的,就把循环上线加一(所以数组要开大些) Co ...

  9. [2020年10月28日普级组]1406.SMRTFUN

    S M R T F U N SMRTFUN SMRTFUN 题目描述 "又肥又温顺,又大又笨,他们看起来那么傻,而且也不有趣--" 这些牛想要证明,他们是既有趣,又聪明的.为了这样 ...

随机推荐

  1. 用JS写的无缝滚动特效

    代码如下 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta ...

  2. php异步加载、多线程fsockopen()、fputs()

    index.php <?php function test() { $fp=fsockopen("localhost", 80, $errno, $errstr, 30); ...

  3. (转载)用SQL语句创建Access表

    <来源网址:http://www.delphifans.com/infoview/Article_220.html>用SQL语句创建Access表 很久以前弄的,用了一天的时间,没有什么技 ...

  4. 【转】STL中mem_fun和mem_fun_ref的用法及区别

    原文:http://www.cppblog.com/mysileng/archive/2012/12/25/196615.html 引子: 怎么对容器中的所有对象都进行同一个操作?我们可能首先想到的是 ...

  5. Hello World for U (20)

    Given any string of N (>=5) characters, you are asked to form the characters into the shape of U. ...

  6. PAT Ranking (排名)

    PAT Ranking (排名) Programming Ability Test (PAT) is organized by the College of Computer Science and ...

  7. opencv学习笔记(02)——遍历图像(指针法)

    #include <opencv2\core\core.hpp> #include <opencv2\highgui\highgui.hpp> #include <ope ...

  8. PHP视频教程 > PHP面向对象编程视频教程

    当前位置: 主页 > 编程开发 > PHP视频教程 > PHP面向对象编程视频教程 > kingstone金士顿手机内存卡16G仅65元 1.1.什么是面向对象和类 上传日期: ...

  9. IOS成长之路-调用照相机和相册功能(转)

    转载自:http://blog.csdn.net/like7xiaoben/article/details/8465237 //先设定sourceType为相机,然后判断相机是否可用(ipod)没相机 ...

  10. C#中Thread.sleep()

    我们可能经常会用到 Thread.Sleep 函数来使线程挂起一段时间.那么你有没有正确的理解这个函数的用法呢?思考下面这两个问题:1.假设现在是 2008-4-7 12:00:00.000,如果我调 ...