1695: 跳格子

时间限制: 1 Sec  内存限制: 128 MB
提交: 230  解决: 57
[提交][状态][讨论版]

题目描述

逸夫楼的大厅的地面有10行10列的石砖,我们用坐标(x,y)来表示石砖的位置。如图示:

一天lxl在逸夫楼大厅玩跳格子游戏,跳格子游戏有7个动作:1.向左转,2向右转,3向后转,4向左跳一格,5向前跳一格,6向右跳一格,7向后跳一格。游戏前,lxl在(1,1)处并面向y轴正方向,他会做n次动作,若某个动作会让lxl跳出逸夫楼大厅则原地不动,每一次动作后都需要你输出lxl当前的位置。当n次动作都做完后,你还需要统计lxl到达过多少个格子。

输入

第一行输入n(0<n<101),表示lxl做的动作次数,接下来有n行,每行一个整数x(0<x<8)表示要做的动作。

输出

每次动作后输出lxl的当前坐标,一共有n行。随后的第n+1行输出lxl到达过的格子总数。

样例输入

7
5
4
1
7
3
2
6

样例输出

(1,2)
(1,2)
(1,2)
(2,2)
(2,2)
(2,2)
(1,2)
3
#include<iostream>
#include<cstring>
#include<cstdio> using namespace std;
const int N = + ;
const int dir[][] = {{-, }, {, -}, {, }, {, }}; struct node{
int x, y, d;
}mat[N][N], p;
int a[]; int dirs_tran(int d, int x){
if(x == ) d = (d + ) % ; //左
if(x == ) d = (d + ) % ; //右
if(x == ) d = (d + ) % ; //后
return d;
} void dirs_work(int x){
p.d = dirs_tran(p.d, x);
} void moves_work(int x, int & cnt){
int cur;
if(x == ) cur = dirs_tran(p.d, );
if(x == ) cur = p.d;
if(x == ) cur = dirs_tran(p.d, );
if(x == ) cur = dirs_tran(p.d, );
int newx = p.x + dir[cur][], newy = p.y + dir[cur][];
if(newx > && newx <= && newy > && newy <=){
p.x = newx, p.y = newy;
if(!mat[newx][newy].d) { mat[newx][newy].d = ; cnt++; }
}
} void Solve_question(int n){
for(int i = ; i <= ; i ++)
for(int j = ; j <= ; j++) mat[i][j].d = ; int cnt = ;
p.x = , p.y = , p.d = ;
mat[][].d = ;
for(int i = ; i < n; i++){
if(a[i] >= && a[i] <= ) dirs_work(a[i]);
else moves_work(a[i], cnt);
printf("(%d,%d)\n",mat[p.x][p.y].x, mat[p.x][p.y].y);
}
printf("%d\n", cnt);
} void Init_mat(){
for(int i = ; i <= ; i++)
for(int j = ; j <= ; j++) mat[i][j] = (node) {j, -i}; }
int main(){
int n;
Init_mat();
scanf("%d", &n);
for(int i = ; i < n; i++) scanf("%d", &a[i]);
Solve_question( n ); }

HNUSTOJ-1695 跳格子(略感头疼)的更多相关文章

  1. 固态LiDAR,半固态混合LiDAR,机械LiDAR

    固态LiDAR,半固态混合LiDAR,机械LiDAR 1. APD/SPAD 2轴MEMS扫描镜+ SPAD图像传感器在混合固态LiDAR中的应用 APD的工作模式分为线性模式和盖革模式两种.当APD ...

  2. 从零开始攻略PHP(5)——字符串操作与POSIX正则

    一.字符串操作 1.字符串的格式化 1.1 干掉空格 trim()函数可以除去字符串开始位置和结束位置的空格,并将结果字符串返回. ltrim()函数可以除去字符串开始位置的空格. rtrim()函数 ...

  3. 一生伏首拜阳明------<明朝那些事儿>

    一生伏首拜阳明. 王守仁,字伯安,别号阳明. 成化八年(1472),王守仁出生在浙江余姚,大凡成大事者往往出身贫寒,小小年纪就要上山砍柴,下海捞鱼,家里还有几个生病的亲属,每日以泪洗面.这差不多也是惯 ...

  4. 就这么漂来漂去---一个毕业三个月的java程序员的裸辞风波

    注:这并不是一篇技术文章,而是记录了我这几个月经历的入职,裸辞,找工作的心路历程,简单介绍一个博主的情况,我是16年毕业生,校招进了一家北京的公司,java开发,和很多年轻人一样,干了一段时间,我发现 ...

  5. beanstalkd 消息队列

    概况:Beanstalkd,一个高性能.轻量级的分布式内存队列系统,最初设计的目的是想通过后台异步执行耗时的任务来降低高容量Web应用系统的页面访问延迟,支持过有9.5 million用户的Faceb ...

  6. flash小游戏在Kongregate上线——BasketBall Master(篮球大师)

    小游戏地址,欢迎上去留言评论.游戏完成度没有达到期望水平,只能算完成了核心玩法吧,一些其他构想来不及实现. BasketBall Master(篮球大师) 这个小游戏很早之前就基本做好了,只因有些细节 ...

  7. Kafka设计解析(一)- Kafka背景及架构介绍

    本文转发自Jason’s Blog,原文链接 http://www.jasongj.com/2015/01/02/Kafka深度解析 背景介绍 Kafka简介 Kafka是一种分布式的,基于发布/订阅 ...

  8. Windows下程序启动时出现0xc000007b错误的解决方案

    一.背景介绍 不久前用Qt开发了一款小工具在公司使用,Debug运行时一切正常.可是当Release编译发布打包之后,运行时弹出这样的提示框: 略一思考,首先排除了DLL缺失的可能性.我知道Qt应用程 ...

  9. [转]9个offer,12家公司,35场面试,从微软到谷歌,应届计算机毕业生的2012求职之路

    1,简介 毕业答辩搞定,总算可以闲一段时间,把这段求职经历写出来,也作为之前三个半月的求职的回顾. 首先说说我拿到的offer情况: 微软,3面->终面,搞定 百度,3面->终面,口头of ...

随机推荐

  1. GO语言学习笔记2-int类型的取值范围

    相比于C/C++语言的int类型,GO语言提供了多种int类型可供选择,有int8.int16.int32.int64.int.uint8.uint16.uint32.uint64.uint. 1.i ...

  2. js对象的创建模式

    方式一: Object构造函数模式 * 套路: 先创建空Object对象, 再动态添加属性/方法 * 适用场景: 起始时不确定对象内部数据 * 问题: 语句太多 /* 一个人: name:" ...

  3. JS常用正则表达式验证

    一.电话+手机 重点是正则表达式: var myreg=/^[1][3,4,5,7,8][0-9]{9}$/; 表达式的意思是: 1--以1为开头: 2--第二位可为3,4,5,7,8,中的任意一位: ...

  4. Shell 变量/echo命令

    Shell 教程 Shell 是一个用C语言编写的程序,它是用户使用Linux的桥梁.Shell既是一种命令语言,又是一种程序设计语言. Shell 是指一种应用程序,这个应用程序提供了一个界面,用户 ...

  5. JMS学习十(ActiveMQ支持的传输协议)

    ActiveMQ提供了一种连接机制,这种连接机制使用传输连接器(TransportConnector)实现客户端与代理(client - to - broker)之间的通信. 网络连接器(networ ...

  6. JMS学习八(ActiveMQ消息持久化)

    ActiveMQ的消息持久化机制有JDBC,AMQ,KahaDB和LevelDB,还有一种内存存储的方式,由于内存不属于持久化范畴,而且如果使用内存队列,可以考虑使用更合适的产品,如ZeroMQ.所以 ...

  7. 关于文件属性(Java)

    1.编写一个程序,指定一个文件夹,能自动计算出其总容量 import java.io.File; import java.util.ArrayList; public class FileAction ...

  8. 采用.bat批处理命令快速设置Java环境变量

    背景: java课程培训,每次到机房需要重新安装JDK,每次都采用图形界面进行操作比较麻烦(慢),于是在网上查了一下CMD命令设置系统环境变量的方法,再次记录下来. 设置方法: 1.找到JDK安装路径 ...

  9. HTTP深入浅出http请求(转)-----http请求的过程和实现机制

    摘要:此文章大概讲明了http请求的过程和实现机制,可以作为了解,至于请求头和响应头的具体信息需要查看下一篇随笔:Http请求详解(转)----请求+响应各字段详解   HTTP(HyperText ...

  10. 系统性能信息模块--psutil

    #安装psutil模块#pip install psutil -i https://pypi.doubanio.com/simple #导入psutil模块import psutilimport da ...