题目: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. 用 .htaccess 实现网址规范化

    网址规范化在 SEO 中是一个比较重要的环节,同时存在不同的网址版本,不但可能造成内容重复,还不能正确的集中权重.目前大多数网站,绑定的域名都有带 www 和不带两个版本,甚至很多网站同时绑定多个域名 ...

  2. Java语法糖

    1.创建数组:String[] s = new String[]{"1","2","3"};//这种方法可以在不指定数组元素数量的情况下生成 ...

  3. Oracle RAC LoadBalance

    LoadBalance 就是把负载平均的分配到集群中的各个节点,从而提高整体的吞吐能力. Oracle 10g RAC 提供了两种不同的方法来分散负载: 通过Connection Balancing, ...

  4. fedora 解决yumBackend.py进程CPU占用过高

    fedora启动时电脑风扇噪声巨响,检查进行发现是yumBackend.py进行占用CPU过高. yumBackend.py进行是后台检查更新,如果觉得没用可以使用工具关闭检查更新,或者修改检查周期. ...

  5. 4、WPF应用程序的启动

    启动第一步: 启动第二步 启动第三步:

  6. 备份了一个nginx的虚拟主机配置文件报错

    [root@localhost vhost]# service nginx restart 停止 nginx:[确定] 正在启动 nginx:nginx: [warn] conflicting ser ...

  7. The ‘Microsoft.ACE.OLEDB.12.0′ provider is not registered on the local machine. (System.Data)

    When you try to import Excel 2007 or later “.xlsx” files into an SQL Server 2008 database you may ge ...

  8. OSUnMapTbl[]的原理

    问题描述:     ucos任务队列中优先级获取 问题解决: uCOS-II是一个多任务的操作系统,每个任务都是一个应用程序,它有自己的寄存器和堆栈空间,即任务控制块TCB(task control ...

  9. UOJ Round #8 赴京赶考 解题报告

    算法零 $n,m \le 100, q \le 10$ 的话,直接给网格中的每一个格点都建一个点,然后该怎么最短路就怎么最短路,该怎么并查集+BFS就怎么并查集+BFS. 复杂度 $O(qnm)$,可 ...

  10. express 3.0.x 中默认不支持flash() 的解决方法

    Express 3.x默认已经不支持req.flash(),如果要用flash()需要这样兼容 1.flash 消息暂存在session中,需要cookieParser 和 session中间件来声明 ...