CF1924C
发现这个东西有一种隐隐约约的递推藏在里面,然后发现确实是递推。
具体的,我们注意到一个正方形先进行第一次折,我们发现实际上它分成了
于是我们设
首先,转移其实就是想象它折完之后再打开的过程,于是我们可以推出:
发现
然后我们考虑把
1.矩阵乘法,直接转移即可。
2.继续推式子,根据这个上面关于
最后分类讨论
代码:
void solve ()
{
int n = rd ();
if (n & 1)
{
int x = qpow (2, (n + 1) >> 1);
int y = 1 - qpow (2, (n - 1) >> 1);
} else
{
int x = qpow (2, n >> 1);
int y = 1 - x;
}
printf ("%lld\n", ((- 2 * y * qpow ((x * x - y * y * 2) % P, P - 2)) % P + P) % P);
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?