社区讨论
0pts 编译器上样例全对
P12028[USACO25OPEN] Moo Decomposition G参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mie2lugf
- 此快照首次捕获于
- 2025/11/25 12:23 3 个月前
- 此快照最后确认于
- 2025/11/25 14:26 3 个月前
CPP
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int mod=1e9+7;
const int N = 1e6 + 10;
int jc[N] = {1};
char s[N];
int fffk(int a,int b)
{if(b==1) return a;
int k=fffk(a,b/2);
if((b&1)==0){
return k*k%mod;
}
return k*k%mod*a%mod;
}
//CBA
int zhs(int a,int b) {
return (jc[b]*fffk(jc[b-a],mod-2)%mod)*fffk(jc[a],mod-2)%mod;
}
signed main(){
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int k,n,l,ans = 1,cnt = 0;
for(int i=1;i<=n;i++){
jc[i]=jc[i-1]*i%mod;
}
cin>>k>>n>>l;
cin>>s;
for(int i=n-1;i>=0;i--){
if(s[i]=='M'){
ans=ans*(zhs(k,cnt-(n-i-1-cnt)*k))%mod;
}else{
cnt++;
}
}
cout<<fffk(ans,l);
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...