题解:P10312 [SHUPC 2024] 栅栏密码
题解:P10312 [SHUPC 2024] 栅栏密码
xyx404思路:
观察题目描述发现当 等于三时,一共分成了三行。
先看第一行,打乱前的第一第五第九个字符分别变成了打乱后的第一二三个字符,相邻两个字符之间原本相差 的两倍。
再看第二行,首行和尾行的间隔依旧不变,假设列数为 ,会有两种情况:
- 若当前数为第二行的奇数个字符的时候,下一个字符是 的两倍。
- 若当前数为第二行的偶数个字符的时候,下一个字符是 的两倍。
第 行与第一行是一样的。
再画个只有数字的图来验证我们的思路。
观察后我们可以发现,当 为三时,一共分成了三行,打乱前的一、五、九分别变成了打乱后的第一、二、三个数,相邻两个数之间相差四也就是 的两倍,第 行与第一行相同。再看第二行你会发现,首行和尾行的间隔不变假设列数为 ,当前数为第二行的第奇数个数的时候,下一个数字是 的两倍,若当前数为第二行的第偶数个数的时候,下一个数字是 的两倍。而且每一行的第一个数字就是这一行的行数。
与我们上面的思路相同,所以可以写成代码。
完整代码:
|
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果