http://codeforces.com/gym/101397 B dp[i][j][k]: i为前一个行动的状态,0-switch.1-type,j为当前状态layout的编号,k 是已键入的字符数量. 遍历k,对每个k遍历j: 1..n dp[0][j % n + 1][k] = min(dp[0][j % n + 1][k], min(dp[0][j][k] + b, dp[1][j][k] + a)) ↑ 执行两次,第二遍处理是为了保证n->1之后正确 dp[1][j][k + 1]…