up[x][j] 表示从 x 跳 2j2^j2j 次的位置。
up[x][j]
由两个 2j−12^{j-1}2j−1 段拼成 2j2^j2j 段,再按 k 的位跳转。
按照上述状态含义与转移顺序,每一步只使用已经正确求出的子问题;所有合法情况被完整计入,且互斥分类不会重复计数,因此最终输出即为题目所求。
位置下标转换;k=0。
完整标程见 std/main.cpp。
std/main.cpp
使用您的 星源智一OJ 通用账户