题目名称 123. 行进方案
输入输出 zbfa.in/out
难度等级 ★☆
时间限制 1000 ms (1 s)
内存限制 128 MiB
测试数据 10
题目来源 Gravatarcqw 于2008-09-24加入
开放分组 全部用户
提交状态
分类标签
递推
分享题解
通过:103, 提交:213, 通过率:48.36%
GravatarHakurou! 100 0.000 s 0.00 MiB C++
GravatarЯ люблю тебя  100 0.000 s 0.00 MiB C++
Gravatar卢本伟 100 0.000 s 0.00 MiB C++
GravatarEzoi_XY 100 0.000 s 0.17 MiB Pascal
GravatarFoolMike 100 0.000 s 0.17 MiB Pascal
GravatarQhelDIV 100 0.000 s 0.27 MiB C++
Gravatar苏轼 100 0.001 s 0.11 MiB Pascal
GravatarWaterFire 100 0.001 s 0.11 MiB Pascal
Gravatar苏轼 100 0.001 s 0.11 MiB Pascal
Gravatarreamb 100 0.001 s 0.12 MiB Pascal
本题关联比赛
NOIP_5
关于 行进方案 的近10条评论(全部评论)
额。。我有罪,WA了5次
Gravatarpα.Princesavs
2017-04-15 21:54 5楼
仰慕2楼
Gravatardateri
2016-08-19 23:39 4楼
需要数组吗?
GravatarMagic_Sheep
2016-03-10 20:40 3楼
先设一个f[i]表示恰好走i步且不经过已走的点 共有的走法。
如果向上走,不会出现经过已走的点;如果向左或右,上一步不能是向右或左。
这一步的选择数= (3*上一步的所有选择中向上走的选择数) + (2*上一步的所有选择中向左、右走的选择数)。
上一步的所有选择中向上走的选择数”实际上就是“上上步的所有选择数”即f[i-2]
“上一步的所有选择中向左、右走的选择数” 等于 “上步所有的选择数(即f[i-1])-上步向上的选择数”
也就等于 “上步所有的选择数(即f[i-1])-上上步所有的选择数(即f[i-2])”
所以得到递推式:f[i] = (3*f[i-2]) + 2*(f[i-1]-f[i-2]);
GravatarEzoi_XY
2013-10-30 07:10 2楼
滚动数组无限好用啊
(Ps:加减乘直接 % 或 mod 12345)
GravatarTruth.Cirno
2011-10-30 19:15 1楼

123. 行进方案

★☆   输入文件:zbfa.in   输出文件:zbfa.out   简单对比
时间限制:1 s   内存限制:128 MiB

【问题描述】

从原点出发,一步只能向右走、向上走或向左走。恰好走N步且不经过已走的点共有多少种走法?

【输入格式】

输入仅一行,为正整数 N ( 0<N<1000 )。

【输出格式】

一个整数,表示方案数。由于结果可能很大,你只需要输出这个答案mod 12345的值。

【输入样例】

2

【输出样例】

7