QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#322199#8015. 鸡lgvc25 1ms4164kbC++14958b2024-02-06 14:34:392024-02-06 14:34:40

Judging History

你现在查看的是最新测评结果

  • [2024-02-06 14:34:40]
  • 评测
  • 测评结果:25
  • 用时:1ms
  • 内存:4164kb
  • [2024-02-06 14:34:39]
  • 提交

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

output:


result: