結果
問題 |
No.2963 Mecha DESU
|
ユーザー |
![]() |
提出日時 | 2025-02-28 15:48:45 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
RE
|
実行時間 | - |
コード長 | 704 bytes |
コンパイル時間 | 2,078 ms |
コンパイル使用メモリ | 193,432 KB |
実行使用メモリ | 6,824 KB |
最終ジャッジ日時 | 2025-02-28 15:48:56 |
合計ジャッジ時間 | 10,111 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 12 RE * 45 |
コンパイルメッセージ
main.cpp: In function ‘int main()’: main.cpp:25:14: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 25 | scanf("%d%d%d",&n,&m,&k); | ~~~~~^~~~~~~~~~~~~~~~~~~ main.cpp:29:22: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 29 | scanf("%d",&x); | ~~~~~^~~~~~~~~
ソースコード
#include <bits/stdc++.h> using namespace std; typedef long long ll; const int INF=0x3f3f3f3f; const ll LLINF=0x3f3f3f3f3f3f3f3fLL; const int MAX=1e5+10; const int mod=998244353; ll qpow(ll a,ll b) { ll res=1; while(b>0) { if(b&1) res=res*a%mod; a=a*a%mod; b>>=1; } return res; } ll inv(ll x){return qpow(x,mod-2);} int cnt[MAX],res[MAX]; int main() { int n,m,k,i,j,x; ll fz,fm; scanf("%d%d%d",&n,&m,&k); for(i=1;i<=n;i++) cnt[i]=res[i]=0; for(i=1;i<=m;i++) { scanf("%d",&x); cnt[x]++; } for(i=1;i<=n;i++) { for(j=i;j<=n;j+=i) res[j]+=cnt[i]; } fz=0; fm=qpow(m,k); for(i=1;i<=n;i++) { fz=(fz+fm-qpow(m-res[i],k)+mod)%mod; } printf("%lld\n",fz*inv(fm)%mod); return 0; }