当前位置: 首页 > news >正文

CF185D

大胆猜测,所有数的最大公约数一定很小:偶数时为 \(1\),奇数时为 \(2\)。设两个正整数 \(n,m\)\(n<m\),最大公约数 \(\gcd(k^{2^n}+1,k^{2^m}+1)=d\),则有 \(k^{2^n}\equiv k^{2^m} \equiv -1\pmod d,k^{2^{n+1}} \equiv (k^{2^{n+1}})^{\frac{2^m}{2^{n+1}}} \equiv k^{2^m} \equiv 1 \pmod d\),故 \(-1 \equiv 1 \pmod d\),即 \(d\) 只能为 \(1\)\(2\),当且仅当 \(k=1\)\(d=2\)

现在要求 \((k^{2^l}+1)(k^{2^{l+1}}+1)\cdots(k^{2^r}+1)\)。这个式子的意义可以理解为二进制上每一位选或不选,那么每一个 \(k\) 的幂一定恰好出现一次,则答案为 \(\dfrac{k^{2^{r+1}}-1}{k^{2^l}-1}\)。比如 \((k^1+1)(k^2+1)(k^4+1)=k^0+k^1+\cdots+k^7=\dfrac{k^8-1}{k-1}\)\(l,r+1\) 的两个分式可以消去分子)。直接使用逆元计算即可。以下是特殊情况:

  • 分母为 \(0\) 时,\(k^{2^l} \equiv 1 \pmod p\),后面 \(k\) 的幂也是同样的结果,直接输出 \(2^{r-l+1}\) 即可。
  • 使用费马小定理减小指数,注意此时模数为 \(p-1\)\(p=2\) 时不符合使用条件,直接特判即可)。
  • 如果 \(k\) 是奇数,最后再乘上 \(2^{r-l}\) 的逆元即可(乘多的部分)。
#include<iostream>
#include<cstdio>
#define int long long
using namespace std;
int k,l,r,p,n;
int qp(int a,int b,int mod){a=(a%mod+mod)%mod;int c=1;while(b){if(b&1)c=c*a%mod;b>>=1;a=a*a%mod;}return c;
}
int calc(int x){if(k%p==0)return 0;n=qp(2,x+1,p-1);// cout<<n<<endl;return qp(k,n,p);
}
signed main(){int T;cin>>T;while(T--){cin>>k>>l>>r>>p;if(p==2){if(k%2)cout<<0<<'\n';else cout<<1<<'\n';continue;}if(calc(l-1)==1){if(k&1)cout<<qp(2,r-l+1,p)*qp(qp(2,r-l,p),p-2,p)%p<<'\n';else cout<<qp(2,r-l+1,p)<<'\n';continue;}if(k&1)cout<<((calc(r)-1)*qp((calc(l-1)-1),p-2,p)%p*qp(qp(2,r-l,p),p-2,p)%p+p)%p<<'\n';else cout<<((calc(r)-1)*qp((calc(l-1)-1),p-2,p)%p+p)%p<<'\n';}return 0;
}
http://www.hskmm.com/?act=detail&tid=2810

相关文章:

  • Python计算文件md5
  • CF201C
  • CF1774D
  • CF23C
  • CF37C
  • CF33D
  • 支持类 Unix 语法 ``:Windows 下用 PowerShell 7 优化 npm 和 VS Code
  • 初赛程序阅读做题要点
  • 模拟堆(手写堆 的五大操作)
  • 【A】杂题悬桨
  • 使用Osquery进行远程取证:NTFS取证扩展实战指南
  • 完整教程:简单介绍一下Clickhouse及其引擎
  • 矩阵分解
  • 基于 Gitlab 实现 Go 的 CI/CD
  • 2025.9.11
  • 容斥原理
  • 【B】世良真纯
  • 如何使用jobleap.cn避免简历中的严重错误
  • 在 Zustand 中创建通用 Action 的优雅实践
  • 如何用产品思维优化简历的“用户体验”?
  • 简历如何优化,简历如何投递,面试如何准备?
  • 网络流做题笔记
  • 简历优化全攻略:如何写出吸引HR的简历?
  • 重塑云上 AI 应用“运行时”,函数计算进化之路
  • 25.9.12 C语言基本数据类型
  • Avalonia:基础导航
  • bashrc的一些配置记录
  • H5游戏性能优化系列-----协议相关优化
  • 实现我的第一个langchain应用
  • 小说可视化系统设计(程序员副业项目)