QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#305696#8015. 鸡vme50100 ✓423ms144580kbC++171.1kb2024-01-15 20:42:432024-01-15 20:42:44

Judging History

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

  • [2024-01-15 20:42:44]
  • 评测
  • 测评结果:100
  • 用时:423ms
  • 内存:144580kb
  • [2024-01-15 20:42:43]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;
#define ll long long
const int N=3e3+5;
int n,m,MOD;struct Node {int x,y;}ans,dp[N][N][2];
void W(int &x,int y) {x+=y;if(x>=MOD) x-=MOD;}
void W(int &x,ll y) {x=(x+y)%MOD;}
void W(Node &x,Node y,int w) {W(x.x,y.x);W(x.y,y.y);W(x.y,1ll*y.x*w);}
int add(int x,int y) {x+=y;return x<MOD?x:x-MOD;}
int main()
{
	scanf("%d %d %d",&n,&m,&MOD);for(int i=0;i<=m;++i) dp[0][i][0]=(Node) {1,0};
	for(int i=0;i<n;++i)
	{
		Node t=(Node) {0,0};
		for(int j=m;j;--j) W(t,dp[i][j][0],m-j),W(t,dp[i][j][1],m-j),W(dp[i+2][j-1][0],t,0);
		t=(Node) {0,0};
		for(int j=1;j<m;++j) W(t,dp[i][j][0],0),W(t,dp[i][j][1],m-j),W(dp[i+2][j+1][1],t,0);
		for(int j=1;j<=m;++j) W(dp[i+2][j][0],dp[i][j][0],m-j),W(dp[i+2][j][1],dp[i][j][1],m-j);
		for(int j=0;j<=m;++j) W(dp[i+1][j][1],dp[i][0][0],0);
		W(dp[i+1][0][0],dp[i][0][1],m);for(int j=1;j<=m;++j) W(dp[i+2][j][1],dp[i][0][0],0);
	}for(int i=1;i<=m;++i) W(ans,dp[n-1][i][0],0),W(ans,dp[n-1][i][1],m-i);
	W(ans,dp[n-1][0][0],0);W(ans,dp[n][0][0],0);printf("%d\n",add(ans.x,ans.y));return 0;
}

详细

Test #1:

score: 5
Accepted
time: 1ms
memory: 3616kb

input:

5 5 1004326439

output:

1281

result:

ok 1 number(s): "1281"

Test #2:

score: 5
Accepted
time: 1ms
memory: 3740kb

input:

5 4 1002682123

output:

649

result:

ok 1 number(s): "649"

Test #3:

score: 5
Accepted
time: 0ms
memory: 5036kb

input:

287 1 1003060133

output:

328406329

result:

ok 1 number(s): "328406329"

Test #4:

score: 5
Accepted
time: 1ms
memory: 4776kb

input:

279 1 1004432189

output:

222258837

result:

ok 1 number(s): "222258837"

Test #5:

score: 5
Accepted
time: 1ms
memory: 5080kb

input:

300 1 1005912203

output:

707086810

result:

ok 1 number(s): "707086810"

Test #6:

score: 5
Accepted
time: 0ms
memory: 4880kb

input:

288 5 1003307827

output:

964512417

result:

ok 1 number(s): "964512417"

Test #7:

score: 5
Accepted
time: 1ms
memory: 4724kb

input:

281 5 1008854383

output:

755282155

result:

ok 1 number(s): "755282155"

Test #8:

score: 5
Accepted
time: 1ms
memory: 4972kb

input:

270 5 1007619367

output:

431828317

result:

ok 1 number(s): "431828317"

Test #9:

score: 5
Accepted
time: 0ms
memory: 4820kb

input:

292 5 1002449813

output:

183613546

result:

ok 1 number(s): "183613546"

Test #10:

score: 5
Accepted
time: 1ms
memory: 4852kb

input:

300 5 1005897091

output:

915308166

result:

ok 1 number(s): "915308166"

Test #11:

score: 5
Accepted
time: 1ms
memory: 3856kb

input:

45 50 1009100993

output:

940158800

result:

ok 1 number(s): "940158800"

Test #12:

score: 5
Accepted
time: 1ms
memory: 3892kb

input:

49 50 1001428049

output:

1045902

result:

ok 1 number(s): "1045902"

Test #13:

score: 5
Accepted
time: 1ms
memory: 3884kb

input:

49 50 1007851073

output:

922264698

result:

ok 1 number(s): "922264698"

Test #14:

score: 5
Accepted
time: 1ms
memory: 3892kb

input:

50 50 1005625571

output:

442192770

result:

ok 1 number(s): "442192770"

Test #15:

score: 5
Accepted
time: 6ms
memory: 6116kb

input:

290 300 1005068699

output:

484359497

result:

ok 1 number(s): "484359497"

Test #16:

score: 5
Accepted
time: 5ms
memory: 6236kb

input:

270 300 1003440637

output:

899894137

result:

ok 1 number(s): "899894137"

Test #17:

score: 5
Accepted
time: 6ms
memory: 6324kb

input:

300 300 1008561979

output:

33407754

result:

ok 1 number(s): "33407754"

Test #18:

score: 5
Accepted
time: 414ms
memory: 144152kb

input:

2991 3000 1004658859

output:

167444547

result:

ok 1 number(s): "167444547"

Test #19:

score: 5
Accepted
time: 400ms
memory: 138500kb

input:

2870 3000 1004054173

output:

860666062

result:

ok 1 number(s): "860666062"

Test #20:

score: 5
Accepted
time: 423ms
memory: 144580kb

input:

3000 3000 1009539589

output:

696222334

result:

ok 1 number(s): "696222334"