| 题目名称 | 123. 行进方案 |
|---|---|
| 输入输出 | zbfa.in/out |
| 难度等级 | ★☆ |
| 时间限制 | 1000 ms (1 s) |
| 内存限制 | 128 MiB |
| 测试数据 | 10 |
| 题目来源 |
|
| 开放分组 | 全部用户 |
| 提交状态 | |
| 分类标签 | |
| 分享题解 |
| 通过:103, 提交:213, 通过率:48.36% | ||||
|
|
100 | 0.000 s | 0.00 MiB | C++ |
|
|
100 | 0.000 s | 0.00 MiB | C++ |
|
|
100 | 0.000 s | 0.00 MiB | C++ |
|
|
100 | 0.000 s | 0.17 MiB | Pascal |
|
|
100 | 0.000 s | 0.17 MiB | Pascal |
|
|
100 | 0.000 s | 0.27 MiB | C++ |
|
|
100 | 0.001 s | 0.11 MiB | Pascal |
|
|
100 | 0.001 s | 0.11 MiB | Pascal |
|
|
100 | 0.001 s | 0.11 MiB | Pascal |
|
|
100 | 0.001 s | 0.12 MiB | Pascal |
| 本题关联比赛 | |||
| NOIP_5 | |||
| 关于 行进方案 的近10条评论(全部评论) | ||||
|---|---|---|---|---|
|
额。。我有罪,WA了5次
2017-04-15 21:54
5楼
| ||||
|
仰慕2楼
| ||||
|
需要数组吗?
| ||||
|
先设一个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]); | ||||
|
滚动数组无限好用啊
(Ps:加减乘直接 % 或 mod 12345) | ||||