[BZOJ 5330][SDOI2018] 反回文串
2024-09-01 15:50:11
怎么说呢,一道不可多得的反演题吧,具体解释之后再补
#include <bits/stdc++.h> using namespace std; #define rep(i,a,b) for(int i=a;i<=b;++i) typedef long long ll; ; ll mul(ll x,ll y,ll p) { x%=p; y%=p; return (x*y-(ll)((long double)x/p*y+0.5)*p+p)%p; } ll _pow(ll x,ll n,ll p) { ll ret=; ,x=mul(x,x,p)) ) ret=mul(ret,x,p); return ret; } ll tp[]={2LL,3LL,5LL,7LL,13LL,61LL}; bool MR(ll n) { ) return false; rep(i,,) if(n==tp[i]) return true; rep(i,,) ) return false; rep(i,,) { ll tmp=n-;)) tmp>>=; ll s=_pow(tp[i],tmp,n); &&s!=&&tmp!=n-) tmp<<=,s=mul(s,s,n); &&!(tmp&)) return false; } return true; } ll PR(ll n,ll c) { ll i=,k=2LL,x,y; x=y=1LL+rand()%(n-); ) { x=(mul(x,x,n)+c)%n; ll d=__gcd((y-x+n)%n,n); &&d!=n) return d; if(x==y) return n; ; } } int op[maxn],len,cnt,T; ll n,P,K,ans,gt[maxn]; inline void fct(ll n) { ) return; if(MR(n)){gt[++len]=n;return;} ll p=n; ;p==n;--c) p=PR(p,c); fct(p); fct(n/p); } ll fpow(ll x,ll n,ll p) { ll ret=; ,x=x*x%p) ) ret=ret*x%p; return ret; } ll g(ll n) {,P);} ll f(ll n) {?n%P:(n>>)%P;} inline void dfs(int dp,ll d,ll pro) { ) { )&&(d&)==) return; (ans+=1LL*g(n/d)*f(n/d)%P*pro%P)%=P; return; } dfs(dp+,d,pro); pro=1LL*pro*(+P-gt[dp]%P)%P; rep(i,,op[dp]) d*=gt[dp],dfs(dp+,d,pro); } int main() { #ifndef ONLINE_JUDGE freopen("25.in","r",stdin); #endif scanf(); while(T--) { scanf("%lld%lld%lld",&n,&K,&P);K%=P; len=cnt=;++cnt; memset(gt,,,sizeof(op)); fct(n); sort(gt+,gt++len); rep(i,,len) { ; ++op[cnt]; } ans=;dfs(,1LL,1LL);printf("%lld\n",ans); } ; }
最新文章
- PMD宣传文案
- Objective-C面向对象(一)
- c#基础精华01(强调代码规范,虚方法,抽象方法,接口)
- 【斐波拉契+数论+同余】【ZOJ3707】Calculate Prime S
- tabbar动画切换
- 我JAVA修炼之路
- 浅谈ASP.NET配置文件加密
- 20175315 《Java程序设计》第6周学习总结
- [Java]如何制作一个WordCount-Plus的Plugin
- Game1---游戏设计
- 关于Kafka java consumer管理TCP连接的讨论
- [knowledge][dpdk] open data plane
- zipfile模块
- python面试一:python2与python3的区别一
- 使用 libvirt创建和管理KVM虚拟机
- WebApi使用swagger ui自动生成接口文档
- python基础===拆分字符串,和拼接字符串
- Hadoop(五)分布式集群中HDFS系统的各种角色
- Github 使用的Markdown语言
- 使用python进行汉语分词-乾颐堂
热门文章
- 03-nginx虚拟主机配置
- php 实现百度文库搭建
- 30-懒省事的小明(priority_queue)
- 单机配置tomcat 8 集群
- xgboost 完全调参指南
- fiddler抓包时显示Tunnel to......443
- struts2 、mybatis 、easyui 分页
- linq to sql 实现左(右)连接,那个方法是对的,该怎么处理
- C# web通信解决方案
- 今天遇到的传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确的解决方案