社区讨论
数据强度有待提高
P4720【模板】扩展卢卡斯定理 / exLucas参与者 19已保存回复 25
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 24 条
- 当前快照
- 1 份
- 快照标识符
- @mkhv0nz9
- 此快照首次捕获于
- 2026/01/17 13:21 上个月
- 此快照最后确认于
- 2026/01/17 20:25 上个月
correct:
CPPstruct ds{
int s[N],p,k,r;
int ca(int n){
if(n<p) return s[n];
return ca(n/p)*qp(s[p-1],n/p,r)%r*s[n%p]%r;
}
int re(int x){
if(x<p) return 0;
return re(x/p)+(x/p);
}
int sec(int n,int m,int x,int y){
p=x,k=y,r=qp(x,y,inf);
int c=re(n)-re(m)-re(n-m);
s[0]=1;
for(int i=1;i<r;i++){
s[i]=s[i-1];
if(i%p) s[i]=s[i]*i%r;
}
int ans=qp(p,c,r);
int d1=ca(n);
int d2=ca(n-m);
int d3=ca(m);
return ans*d1%r*inv(d2,r)%r*inv(d3,r)%r;
}
};
incorrect:
CPPstruct ds{
int s[N],p,k,r;
int ca(int n){
if(n<p) return s[n];
return ca(n/p)*qp(s[p-1],n/p,r)%r*s[n%p]%r;
}
int re(int x){
if(x<p) return 0;
return re(x/p)+(x/p);
}
int sec(int n,int m,int x,int y){
p=x,k=y,r=qp(x,y,inf);
int c=re(n)-re(m)-re(n-m);
s[0]=1;
for(int i=1;i<p;i++){
s[i]=s[i-1];
if(i%p) s[i]=s[i]*i%r;
}
int ans=qp(p,c,r);
int d1=ca(n);
int d2=ca(n-m);
int d3=ca(m);
return ans*d1%r*inv(d2,r)%r*inv(d3,r)%r;
}
};
码的,下面这玩意居然能过。
给个 hack。
input:
CPP3 1 4
output:
CPP3
回复
共 25 条回复,欢迎继续交流。
正在加载回复...