题解:洛谷P10128 「Daily OI Round 3」Xor Graph
题目链接:洛谷P10128 「Daily OI Round 3」Xor Graph
首先,观察到如果
其次,还要保证
考虑求
就可以发现,从一个数出发存在长度为
现在有
现在,答案就变成了求
无脑大力推式子:原式
已经 可爱极限,导致我们只能递推预处理qwq。
将括号拆开,得:
现在两边都可以预处理,那这道题就做完了。
代码(其实不长):
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N = 1e7 + 9, mod = 998244353;
int ans1[N], ans2[N], mi;
int t;
signed main(){
ans1[1] = ans2[1] = 0;
ans1[2] = 2, ans2[2] = 4;
mi = 4;
for(int i = 3; i <= 1e7; i++){
ans1[i] = (ans1[i - 1] * i + i) % mod;//减号左边递推
ans2[i] = (ans2[i - 1] * i + i * mi) % mod;//减号右边递推
mi = mi * 2 % mod;
}
scanf("%d",&t);
while(t--){
int x;
scanf("%d",&x);
printf("%lld\n",(ans2[x] - ans1[x] + mod) % mod);
}
return 0;
}
本文来自博客园,作者:JPGOJCZX,转载请注明原文链接:https://www.cnblogs.com/JPGOJCZX/p/18422824
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效