QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#322199 | #8015. 鸡 | lgvc | 25 | 1ms | 4164kb | C++14 | 958b | 2024-02-06 14:34:39 | 2024-02-06 14:34:40 |
Judging History
answer
#include <bits/stdc++.h>
int ans,a[3009],f[3009],f2[3009],MOD,N,M;
std::unordered_map<unsigned long long,int> v;
void cc(void) {
f[1]=a[1];
for(int i=2;i<=N;i++) {
f[i]=std::max(f[i-1],f[i-2]+a[i]);
}
f2[N]=a[N];
f2[N+1]=0;
for(int i=N-1;i>=1;i--) {
f2[i]=std::max(f2[i+1],f2[i+2]+a[i]);
}
unsigned long long at=0;
for(int i=1;i<=N;i++) {
at=(at*1000000007+f2[i+1]+f[i-1]);
}
ans+=1-v[at];
v[at]=1;
}
void dfs(int n) {
if(n==N+1) {
cc();
return;
}
for(int i=0;i<=M;i++) {
a[n]=i;
dfs(n+1);
}
}
int as[3009];
signed main(void) {
scanf("%d %d %d",&N,&M,&MOD);
if(M==1) {
as[1]=1;
as[2]=4;
as[3]=6;
as[4]=12;
as[5]=19;
as[6]=35;
as[7]=58;
for(int i=8;i<=N;i++) {
as[i]=(1ll*as[i-1]+as[i-2]+as[i-2]+as[i-2]-as[i-3]-as[i-4]-as[i-4]-as[i-4]-as[i-5])%MOD;
as[i]+=MOD;
as[i]%=MOD;
}
printf("%d",as[N]);
return 0;
}
dfs(1);
printf("%d",ans%MOD);
}
詳細信息
Test #1:
score: 5
Accepted
time: 0ms
memory: 3960kb
input:
5 5 1004326439
output:
1281
result:
ok 1 number(s): "1281"
Test #2:
score: 5
Accepted
time: 1ms
memory: 4164kb
input:
5 4 1002682123
output:
649
result:
ok 1 number(s): "649"
Test #3:
score: 5
Accepted
time: 0ms
memory: 4084kb
input:
287 1 1003060133
output:
328406329
result:
ok 1 number(s): "328406329"
Test #4:
score: 5
Accepted
time: 0ms
memory: 3884kb
input:
279 1 1004432189
output:
222258837
result:
ok 1 number(s): "222258837"
Test #5:
score: 5
Accepted
time: 0ms
memory: 3884kb
input:
300 1 1005912203
output:
707086810
result:
ok 1 number(s): "707086810"
Test #6:
score: 0
Time Limit Exceeded
input:
288 5 1003307827
output:
result:
Test #7:
score: 0
Time Limit Exceeded
input:
281 5 1008854383
output:
result:
Test #8:
score: 0
Time Limit Exceeded
input:
270 5 1007619367
output:
result:
Test #9:
score: 0
Time Limit Exceeded
input:
292 5 1002449813
output:
result:
Test #10:
score: 0
Time Limit Exceeded
input:
300 5 1005897091
output:
result:
Test #11:
score: 0
Time Limit Exceeded
input:
45 50 1009100993
output:
result:
Test #12:
score: 0
Time Limit Exceeded
input:
49 50 1001428049
output:
result:
Test #13:
score: 0
Time Limit Exceeded
input:
49 50 1007851073
output:
result:
Test #14:
score: 0
Time Limit Exceeded
input:
50 50 1005625571
output:
result:
Test #15:
score: 0
Time Limit Exceeded
input:
290 300 1005068699
output:
result:
Test #16:
score: 0
Time Limit Exceeded
input:
270 300 1003440637
output:
result:
Test #17:
score: 0
Time Limit Exceeded
input:
300 300 1008561979
output:
result:
Test #18:
score: 0
Time Limit Exceeded
input:
2991 3000 1004658859
output:
result:
Test #19:
score: 0
Time Limit Exceeded
input:
2870 3000 1004054173
output:
result:
Test #20:
score: 0
Time Limit Exceeded
input:
3000 3000 1009539589