結果
問題 | No.2388 At Least K-Characters |
ユーザー |
![]() |
提出日時 | 2024-02-16 19:20:57 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 799 ms / 4,000 ms |
コード長 | 986 bytes |
コンパイル時間 | 328 ms |
コンパイル使用メモリ | 82,912 KB |
実行使用メモリ | 78,112 KB |
最終ジャッジ日時 | 2024-09-28 19:36:12 |
合計ジャッジ時間 | 17,585 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 34 |
ソースコード
N,M,K=map(int, input().split())S=input()dp=[[0]*2 for i in range(28)]dp[0][0]=1;T=[0]*26ans=0;mod=998244353for j in range(N):ss=S[j]ndp=[[0]*2 for _ in range(28)]s=ord(ss)-ord('a')for i in range(27):ndp[i][1]+=dp[i][1]*indp[i][1]%=modndp[i+1][1]+=dp[i][1]*(26-i)ndp[i+1][1]%=modt=sum(T)for i in range(s):if T[i]==0:ndp[t+1][1]+=dp[t][0]ndp[t+1][1]%=modelse:ndp[t][1]+=dp[t][0]ndp[t][1]%=modif T[s]==0:ndp[t+1][0]+=dp[t][0]ndp[t+1][0]%=modelse:ndp[t][0]+=dp[t][0]ndp[t][0]%=modT[s]=1dp=ndpfor i in range(K,27):ans+=dp[i][0]ans+=dp[i][1]ans%=modfor _ in range(M-N):ndp=[[0]*2 for _ in range(28)]for i in range(27):ndp[i][1]+=dp[i][1]*indp[i][1]%=modndp[i+1][1]+=dp[i][1]*(26-i)ndp[i+1][1]%=moddp=ndpfor i in range(K,27):ans+=dp[i][0]ans+=dp[i][1]ans%=modif sum(T)>=K:ans-=1ans%=modprint(ans)