QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#488854 | #5356. esperar | NianFeng | 49 | 18ms | 10884kb | C++14 | 1.9kb | 2024-07-24 15:52:13 | 2024-07-24 15:52:13 |
Judging History
answer
#include <bits/stdc++.h>
const int mod=998244353;
#define int long long
namespace io{
char buf[1<<21],*p1=buf,*p2=buf;
#define getchar() (p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<21,stdin),p1==p2)?EOF:*p1++)
inline int read(){
int x=0; bool flag=true; char c=getchar();
while(!isdigit(c)){ if(c=='-') flag=false; c=getchar(); }
while(isdigit(c)){ x=(x<<1)+(x<<3)+(c^48); c=getchar(); }
return flag?x:~(x-1);
}
}
namespace math{
inline int Qpow(int a,int x){
int res=1;
while(x){
if(x&1)
(res*=a)%=mod;
(a*=a)%=mod,x>>=1;
}
return res;
}
}
using namespace math;
using namespace std;
using namespace io;
const int P=35000;
const int M=3000;
const int N=105;
bool is[P];
int prime[P],tot;
void init(){
is[0]=is[1]=true;
for(int i=2;i<P;i++){
if(!is[i])
prime[++tot]=i;
for(int j=1;j<=tot&&i*prime[j]<P;j++){
is[i*prime[j]]=true;
if(i%prime[j]==0) break;
}
}
}
int n,a[N];
int num[N],lm;
int f[N][M*2];
int sum=1,cnt=1;
void dp(int p){
for(int i=1;i<=n;i++){
num[i]=0;
while(a[i]%p==0)
a[i]/=p,num[i]++;
sum=(sum*(num[i]+1)*(num[i]+2)/2)%mod;
}
memset(f,0,sizeof(f));
f[0][M]=1,lm=0;
for(int i=1;i<=n;i++){
for(int j=M-lm;j<=M+lm;j++){
for(int x=0;x<=num[i];x++){
for(int y=0;y+x<=num[i];y++){
f[i][j+x-y]=(f[i][j+x-y]+f[i-1][j])%mod;
}
}
}
lm+=num[i];
}
cnt=(cnt*f[n][M])%mod;
}
signed main(){
init(),n=read();
for(int i=1;i<=n;i++) a[i]=read();
for(int i=1;i<=5;i++) dp(prime[i]);
for(int i=1;i<=n;i++)
if(a[i]>1) dp(a[i]);
printf("%lld\n",(sum+cnt)%mod*Qpow(2,mod-2)%mod);
return 0;
}
详细
Subtask #1:
score: 17
Accepted
Test #1:
score: 17
Accepted
time: 0ms
memory: 10796kb
input:
2 2 3
output:
5
result:
ok single line: '5'
Test #2:
score: 17
Accepted
time: 2ms
memory: 8716kb
input:
4 5 8 8 9
output:
916
result:
ok single line: '916'
Test #3:
score: 17
Accepted
time: 2ms
memory: 8788kb
input:
5 4 8 7 4 10
output:
4939
result:
ok single line: '4939'
Test #4:
score: 17
Accepted
time: 0ms
memory: 8780kb
input:
5 2 7 7 10 10
output:
1125
result:
ok single line: '1125'
Test #5:
score: 17
Accepted
time: 2ms
memory: 8744kb
input:
4 5 5 4 3
output:
84
result:
ok single line: '84'
Test #6:
score: 17
Accepted
time: 0ms
memory: 8868kb
input:
4 5 5 6 4
output:
249
result:
ok single line: '249'
Subtask #2:
score: 32
Accepted
Test #7:
score: 32
Accepted
time: 2ms
memory: 8780kb
input:
100 78125 625 244140625 9765625 390625 9765625 244140625 3125 125 244140625 1 78125 25 48828125 25 3125 15625 9765625 25 125 9765625 1 625 125 244140625 3125 15625 48828125 9765625 1 125 390625 1953125 15625 1 5 9765625 5 48828125 125 9765625 25 5 48828125 390625 25 125 390625 9765625 9765625 625 31...
output:
476416688
result:
ok single line: '476416688'
Test #8:
score: 32
Accepted
time: 7ms
memory: 8792kb
input:
100 19683 43046721 3 81 43046721 531441 1594323 177147 3 1594323 387420489 81 6561 9 3 14348907 9 59049 3 129140163 2187 1 2187 729 19683 4782969 4782969 387420489 59049 531441 4782969 2187 19683 387420489 387420489 1594323 387420489 59049 9 43046721 1594323 14348907 1 2187 1 27 387420489 1594323 14...
output:
680607930
result:
ok single line: '680607930'
Test #9:
score: 32
Accepted
time: 12ms
memory: 8708kb
input:
100 2187 531441 729 129140163 129140163 729 14348907 27 19683 2187 387420489 243 729 129140163 3 1 531441 59049 4782969 387420489 3 387420489 531441 2187 27 43046721 59049 14348907 43046721 129140163 4782969 43046721 59049 43046721 9 243 6561 129140163 14348907 129140163 1594323 81 129140163 177147 ...
output:
791036287
result:
ok single line: '791036287'
Test #10:
score: 32
Accepted
time: 5ms
memory: 8864kb
input:
100 3 14348907 2187 81 243 1 729 1594323 9 3 9 19683 81 177147 387420489 531441 6561 243 3 81 243 387420489 129140163 14348907 9 243 6561 6561 43046721 27 3 729 387420489 177147 14348907 1 27 81 2187 129140163 4782969 531441 243 81 6561 81 6561 6561 129140163 81 9 729 14348907 177147 2187 2187 9 729...
output:
301961884
result:
ok single line: '301961884'
Test #11:
score: 32
Accepted
time: 0ms
memory: 8740kb
input:
100 3125 3125 15625 78125 15625 125 1 625 25 1 5 48828125 5 1 125 15625 1 48828125 1 3125 25 48828125 244140625 15625 244140625 625 78125 48828125 1 1953125 48828125 125 48828125 48828125 25 390625 78125 3125 25 9765625 3125 5 78125 5 1953125 9765625 3125 390625 390625 9765625 244140625 48828125 25 ...
output:
293129734
result:
ok single line: '293129734'
Subtask #3:
score: 0
Wrong Answer
Test #12:
score: 51
Accepted
time: 0ms
memory: 8772kb
input:
100 78125 625 244140625 9765625 390625 9765625 244140625 3125 125 244140625 1 78125 25 48828125 25 3125 15625 9765625 25 125 9765625 1 625 125 244140625 3125 15625 48828125 9765625 1 125 390625 1953125 15625 1 5 9765625 5 48828125 125 9765625 25 5 48828125 390625 25 125 390625 9765625 9765625 625 31...
output:
476416688
result:
ok single line: '476416688'
Test #13:
score: 51
Accepted
time: 11ms
memory: 8800kb
input:
100 19683 43046721 3 81 43046721 531441 1594323 177147 3 1594323 387420489 81 6561 9 3 14348907 9 59049 3 129140163 2187 1 2187 729 19683 4782969 4782969 387420489 59049 531441 4782969 2187 19683 387420489 387420489 1594323 387420489 59049 9 43046721 1594323 14348907 1 2187 1 27 387420489 1594323 14...
output:
680607930
result:
ok single line: '680607930'
Test #14:
score: 51
Accepted
time: 7ms
memory: 8784kb
input:
100 2187 531441 729 129140163 129140163 729 14348907 27 19683 2187 387420489 243 729 129140163 3 1 531441 59049 4782969 387420489 3 387420489 531441 2187 27 43046721 59049 14348907 43046721 129140163 4782969 43046721 59049 43046721 9 243 6561 129140163 14348907 129140163 1594323 81 129140163 177147 ...
output:
791036287
result:
ok single line: '791036287'
Test #15:
score: 51
Accepted
time: 8ms
memory: 8932kb
input:
100 3 14348907 2187 81 243 1 729 1594323 9 3 9 19683 81 177147 387420489 531441 6561 243 3 81 243 387420489 129140163 14348907 9 243 6561 6561 43046721 27 3 729 387420489 177147 14348907 1 27 81 2187 129140163 4782969 531441 243 81 6561 81 6561 6561 129140163 81 9 729 14348907 177147 2187 2187 9 729...
output:
301961884
result:
ok single line: '301961884'
Test #16:
score: 51
Accepted
time: 0ms
memory: 10884kb
input:
100 3125 3125 15625 78125 15625 125 1 625 25 1 5 48828125 5 1 125 15625 1 48828125 1 3125 25 48828125 244140625 15625 244140625 625 78125 48828125 1 1953125 48828125 125 48828125 48828125 25 390625 78125 3125 25 9765625 3125 5 78125 5 1953125 9765625 3125 390625 390625 9765625 244140625 48828125 25 ...
output:
293129734
result:
ok single line: '293129734'
Test #17:
score: 0
Wrong Answer
time: 18ms
memory: 8736kb
input:
100 958554192 562894056 924024548 251107572 36911606 198139253 441971512 936445000 695042827 221555058 722401091 545534982 287742250 882290250 56062151 749398293 836903776 111144571 833788733 659556268 998890671 588012058 138718289 204660698 608856718 837533517 873613411 419546623 64076134 417204943...
output:
282622434
result:
wrong answer 1st lines differ - expected: '7638211', found: '282622434'