社区讨论
ABC f求调
学术版参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @miae9qd8
- 此快照首次捕获于
- 2025/11/22 22:38 4 个月前
- 此快照最后确认于
- 2025/11/22 22:46 4 个月前
CPP
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int mod=998244353;
string s;
int n;
int sum[1000005][10];
int ans;
int fac[2000005],inv[2000005];
int ksm(int a,int b)
{
int ans=1;
while(b)
{
if(b&1) ans=ans*a%mod;
a=a*a%mod;
b>>=1;
}
return ans;
}
int C(int n,int m)
{
if(n>m) return 0;
return fac[m]*inv[n]%mod*inv[m-n]%mod;
}
signed main()
{
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
cin>>s;
n=s.length();
s=" "+s;
fac[0]=1;
for(int i=1;i<=2*n;i++) fac[i]=fac[i-1]*i%mod;
inv[2*n]=ksm(fac[2*n],mod-2);
for(int i=2*n-1;i>=1;i--) inv[i]=inv[i+1]*(i+1)%mod;
for(int i=1;i<=n;i++)
for(int j=0;j<=9;j++)
sum[i][j]=sum[i-1][j]+(s[i]==(j+'0'));
for(int i=1;i<=n;i++)
{
int x=sum[i-1][s[i]-'0'-1];
int y=sum[n][s[i]-'0']-sum[i][s[i]-'0'];
ans+=C(y+1,x+y);
ans%=mod;
}
cout<<ans;
return 0;
}
应该是哪里细节错了:(
回复
共 0 条回复,欢迎继续交流。
正在加载回复...