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. 拉链法解决hashtable冲突问题

    拉链法解决冲突.拉链法解决冲突的做法是将所有的相同Hash值的key放在一个链表中,比如key3和key14在hash之后都是0,那么在数组的键为0的地方存储这两个值,形式是链表.如果不能理解我的文字 ...

  2. C语言 - C语言简介

    一.C语言的发展史 C语言的发展离不开B语言,我们先从B语言说起.在1970年时,贝尔实验室的肯.汤姆逊将BCPL语言进行修改,由于肯.汤姆逊是从BCPL语言进行修改,因此,此时B语言就诞生了,B的含 ...

  3. vue.js 深度监测

    1.select 控件赋值改变,但是无法获取 解决方法,在监测时手动赋值新值 'model.UseType': { handler(newVal, oldVal) { $("#UseType ...

  4. Python3学习笔记(九):赋值,浅拷贝和深拷贝区别

    一.变量赋值 在Python可变数据类型(列表,字典,集合)中,把一个可变数据类型的变量赋给另一个变量,这两个变量引用的是同一个对象,内存地址是一样的,修改当中的一个变量,另一个变量相应也会被修改 & ...

  5. 【转】C语言中数组名和指针的区别

    注:本文转自http://www.cnblogs.com/furaibo/archive/2010/03/19/1689710.html 魔幻数组名 请看程序(本文程序在WIN32平台下编译): #i ...

  6. DVWA--upload

    文件上传漏洞 0x01了解文件上传漏洞的用处是用来干什么的 什么是文件上传漏洞? 文件上传漏洞是指由于程序员在对用户文件上传部分的控制不足或者处理缺陷,而导致的用户可以越过其本身权限向服务器上上传可执 ...

  7. [POJ2942]:Knights of the Round Table(塔尖+二分图染色法)

    题目传送门 题目描述 亚瑟王要在圆桌上召开骑士会议,为了不引发骑士之间的冲突,并且能够让会议的议题有令人满意的结果,每次开会前都必须对出席会议的骑士有如下要求: .相互憎恨的两个骑士不能坐在直接相邻的 ...

  8. android api文档:intent阅读笔记

    intent是几大组件之间进行通信的组件.可以包含以下几个部分: component:指明了处理该intent的对象. Action类似于一个函数名,规定了其他部分的对应用法: The action ...

  9. 解决img标签与其它标签间隙问题?

    解决img标签间距问题 关于img标签间距问题:多个img之间有间距,包含img标签的div之间有间距 代码如下: <!DOCTYPE html> <html> <hea ...

  10. python基础之 数据格式化

    %还是format 皇城PK Python中格式化字符串目前有两种阵营:%和format,我们应该选择哪种呢? 自从Python2.6引入了format这个格式化字符串的方法之后,我认为%还是form ...