2725:跳格问题
总时间限制: 1000ms 内存限制: 65536kB
描述
有一种游戏,在纸上画有很多小方格,第一个方格为起点(S),最后一个方格为终点。有一个棋子,初始位置在起点上,棋子每次可移动一次,棋子在起点时,可向前移动一个格子到第二个方格内;棋子在其他方格内时,可根据方格内的数字Ni进行移动。如果Ni大于零,就向前移动Ni个格子;如果Ni小于零,就向后移动-Ni个格子;如果Ni等于零,则此次原地不动一次,在下一步移动时可向前移动一步到下一个格子。显然,如果仅按此方案,会出现棋子永远移动不到终点的情形。为防止这种情况发生,我们规定,当棋子再次来到它曾经到过的方格时,它需要原地不动一次,在下一步移动时可向前移动一步到下一个格子。按此方案,棋子总能够走到终点(F)。如果给定一个方格图,试求棋子要走多少步才能从起点走到终点。(注:当然还可能会出现向前移动Ni个格子就跑过终点了,则把棋子放到终点上。如果Ni太小,使得棋子向后移动跑过了起点,则把棋子放到起点上。)(如图所示,其中S代表起点,F代表终点)(只有离开后再次来到一个方格时,才算来到它曾经到过的方格,包括起点S)

输入
第一行为所有中间格子的总数n(n<20)(即加上起点小格子和终点小格子,共有n+2个小格子)。
其余各行上分别为一个整数,表示对应的小格子上的初始数字。
输出
输出一行,要从起点跳到终点,共要跳多少步。(注:每跳一步,可能跳过多个格子,也可能原地不动)
样例输入
5
2
3
-2
0
-5
样例输出
19

提示

只有离开后再次来到一个方格时,才算来到它曾经到过的方格,包括起点S
如果有疑问可再读一遍题干!
来源
计算概论化学学院期末考试

问题链接:Bailian2725 跳格问题
问题简述:(略)
问题分析:模拟题,不解释。
程序说明:(略)
参考链接:(略)
题记:(略)

AC的C++语言程序如下:

/* Bailian2725 跳格问题 */#include <bits/stdc++.h>using namespace std;const int N = 20;
const int M = N + 2;
int num[M], flag[M];
int m, pos, sum;int main()
{int n;scanf("%d", &n);for(int i = 1; i <= n; i++)scanf("%d", &num[i]);num[0] = 1;memset(flag, 0, sizeof(flag));m = n + 2, pos = 0, sum = 0;while(pos + 1 < m) {if(num[pos] == 0) {pos++;sum += 2;}if(flag[pos] == 0) {flag[pos] = 1;pos += num[pos];sum++;} else {pos++;sum += 2;}}printf("%d\n", sum);return 0;
}

Bailian2725 跳格问题【模拟】相关推荐

  1. js验证码输入数字自动跳格

    使用Js进行验证码输入自动跳格 HTML部分: <!DOCTYPE html> <html><head><meta charset="utf-8&q ...

  2. php代码怎么用换行和空格,php 空格,换行,跳格使用说明

    php 空格,换行,跳格使用说明 首先说说\n,\r,\t \n 软回车: 在Windows 中表示换行且回到下一行的最开始位置 在Linux.unix 中只表示换行,但不会回到下一行的开始位置. \ ...

  3. 自动跳格的验证码输入

    最近做小程序,其中有一个短信验证码的填写页面,是那种输入数字,就自动跳到下一格的,可以看下动图 演示 点击横线区域,弹出键盘,然后依次输入数字,可自动跳到下一格,输入完成后,下方确定按钮自动变为可点击 ...

  4. python登录跳转_Python模拟登录和登录跳转的参考示例

    # coding:utf-8 import urllib import urllib2 import cookielib from bs4 import BeautifulSoup # 设置登录url ...

  5. python实现登陆注册跳转_Python模拟登录和登录跳转的参考示例

    # coding:utf-8 import urllib import urllib2 import cookielib from bs4 import beautifulsoup # 设置登录url ...

  6. python登陆成功页面跳转_模拟登陆后如何获取跳转的网页?

    爬取虾米音乐时,模拟登陆网页版地址https://login.xiami.com/member/login后,返回的是一串字符(包括status.jumpurl以及账号信息等),但无法获取跳转后的网页 ...

  7. c语言中编程中跳格的写法是,c语言中现代写法,用C语言编程中,一般的格式是怎样的?...

    C语言源程序的编程格式归纳如下: 1,强制性规则 1,一个C语言源程序必须有且只有一个MAIN函数. 2,函数名后必须紧跟圆括号对,函数体放在右圆括号")"后的花括号对" ...

  8. 键盘的箭头键不能上移和左移_做excel表格时,键盘上的上下左右键不能起到跳格作用,只会在一个格子里移动,为什么呢?...

    展开全部 解决办法: 1.按ALT+F11看看,有没有加载宏 2.是不是键盘右上e68a84e8a2ad3231313335323631343130323136353331333366303062角S ...

  9. C语言-编写函数统计输入文本中单词的个数,单词之间用空格符、换行符、跳格符隔开,用@作为输入结束标志。

    #include<stdio.h> #define IN 1//标志在一个单词的内部 #define OUT 0//标志在一个单词的外部 int countword();//函数说明语句 ...

最新文章

  1. MIT发布白皮书:美国欲重返世界半导体霸主!
  2. servlet session listener
  3. python读数据-如何用 Python 读取数据?
  4. 浅谈模型压缩之量化、剪枝、权重共享
  5. 支付宝安全进程也“耍流氓”
  6. led显字风扇原理?
  7. 多线程环境下调用 HttpWebRequest 并发连接限制
  8. 带有审图号的区位图制作
  9. C语言基础--字符串
  10. 电脑罗盘时钟代码_轻松吃透实时时钟芯片DS1302软硬件设计
  11. Java的GUI窗体出现乱码解决方法
  12. W3school笔记——HTML
  13. 解决:Firefox添加xpi扩展组件提示“此附件组件无法安装,未通过验证”
  14. PCI、PCIe、PCI BIOS概念介绍
  15. SpringBoot Spring Cloud项目学习汇总
  16. UWB基本原理分析2
  17. 普通浏览器打开微信页面出现验证的解决方法
  18. Z(zombie)僵尸进程和孤儿进程
  19. android 电商app组件化,APICloud AVM多端开发案例深度解析(一)--生鲜电商app开发
  20. js网状特效源代码下载

热门文章

  1. (实战)Node.js 实现抢票小工具短信通知提醒
  2. 河南信息统计学院微信公众平台API汇总
  3. 发表16篇Nature、14篇Science!这位顶尖学者告诉你论文十大诀窍
  4. 发展型机器人:由人类婴儿启发的机器人. 2.3 类人婴儿机器人
  5. Vanishing gradient and activiation funcation(ReLU、Maxout)
  6. VS2015安装完成后Visual C++的一些模板找不到,安装C++新模板
  7. Java Swing添加背景图片
  8. Zookeeper源码解析 -- 本地事务日志持久化之FileTxnLog
  9. html中显示页面布局,如何让打开的网页显示在一个页面上
  10. 服务器RAID配置全程