QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#811949#7258. Random WalkAuroreAC ✓177ms188756kbC++231.1kb2024-12-13 09:34:482024-12-13 09:34:50

Judging History

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

  • [2024-12-13 09:34:50]
  • 评测
  • 测评结果:AC
  • 用时:177ms
  • 内存:188756kb
  • [2024-12-13 09:34:48]
  • 提交

answer

#include<bits/stdc++.h>
#define int long long
using namespace std;
inline int read(){
	int x=0,f=1;char ch=getchar();
	while(ch<'0'||ch>'9'){if(ch=='-')f=-f;ch=getchar();}
	while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
	return x*f;
}
int buf[105];
inline void print(int x,char ch=' '){
	if(x<0) putchar('-'),x=-x;
	int tot=0;
	do{
		buf[++tot]=x%10;
		x/=10;
	}while(x);
	for(int i=tot;i;i--) putchar(buf[i]+'0');
	putchar(ch);
}
const int MAXN=5e3+5;
int n,mod;
int c[MAXN][MAXN],f[MAXN],g[MAXN],pw[MAXN];
signed main(){
	n=read(),mod=read();
	
	for(int i=0;i<=n;i++){
		c[i][0]=1;
		for(int j=1;j<=i;j++)
			c[i][j]=(c[i-1][j]+c[i-1][j-1])%mod;
	}
	
	pw[0]=1;
	for(int i=1;i<=n;i++) pw[i]=pw[i-1]*4%mod;
	
	for(int i=0;i<=n;i++)
		for(int j=0;j<=n&&(i+j)*2<=n;j++)
			f[(i+j)*2]=(f[(i+j)*2]+c[(i+j)*2][i]*c[i+j*2][i]%mod*c[j*2][j])%mod;
	for(int i=1;i<=n;i++){
		g[i]=f[i];
		for(int j=1;j<i;j++)
			g[i]=(g[i]-f[j]*g[i-j]%mod+mod)%mod;
	}
	
	int ans=(n+1)*pw[n]%mod;
	for(int i=1;i<=n;i++)
		ans=(ans-g[i]*pw[n-i]%mod*(n-i+1)%mod+mod)%mod;
	print(ans);
	return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 3692kb

input:

2 1000000007

output:

44 

result:

ok 1 number(s): "44"

Test #2:

score: 0
Accepted
time: 26ms
memory: 81684kb

input:

2015 2000000000

output:

1892319232 

result:

ok 1 number(s): "1892319232"

Test #3:

score: 0
Accepted
time: 0ms
memory: 3624kb

input:

1 1335279264

output:

8 

result:

ok 1 number(s): "8"

Test #4:

score: 0
Accepted
time: 0ms
memory: 3632kb

input:

2 1849598327

output:

44 

result:

ok 1 number(s): "44"

Test #5:

score: 0
Accepted
time: 0ms
memory: 3628kb

input:

3 1822889311

output:

224 

result:

ok 1 number(s): "224"

Test #6:

score: 0
Accepted
time: 0ms
memory: 3704kb

input:

4 1446755913

output:

1068 

result:

ok 1 number(s): "1068"

Test #7:

score: 0
Accepted
time: 0ms
memory: 3640kb

input:

5 1526239859

output:

4960 

result:

ok 1 number(s): "4960"

Test #8:

score: 0
Accepted
time: 157ms
memory: 163016kb

input:

4995 1548830120

output:

950970144 

result:

ok 1 number(s): "950970144"

Test #9:

score: 0
Accepted
time: 177ms
memory: 169068kb

input:

4996 1181424399

output:

777518421 

result:

ok 1 number(s): "777518421"

Test #10:

score: 0
Accepted
time: 153ms
memory: 186076kb

input:

4997 1715477619

output:

1422350413 

result:

ok 1 number(s): "1422350413"

Test #11:

score: 0
Accepted
time: 149ms
memory: 185952kb

input:

4998 1342858071

output:

1282046306 

result:

ok 1 number(s): "1282046306"

Test #12:

score: 0
Accepted
time: 169ms
memory: 188756kb

input:

4999 1625711486

output:

685405600 

result:

ok 1 number(s): "685405600"

Test #13:

score: 0
Accepted
time: 148ms
memory: 188240kb

input:

5000 1448565595

output:

244248863 

result:

ok 1 number(s): "244248863"

Test #14:

score: 0
Accepted
time: 99ms
memory: 163052kb

input:

4325 1647639160

output:

152052616 

result:

ok 1 number(s): "152052616"

Test #15:

score: 0
Accepted
time: 137ms
memory: 180852kb

input:

4784 1449656269

output:

62584332 

result:

ok 1 number(s): "62584332"

Test #16:

score: 0
Accepted
time: 26ms
memory: 87844kb

input:

2156 1336869678

output:

794572014 

result:

ok 1 number(s): "794572014"

Test #17:

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

input:

902 1061020590

output:

502050782 

result:

ok 1 number(s): "502050782"

Test #18:

score: 0
Accepted
time: 78ms
memory: 136752kb

input:

3537 1816372580

output:

304447408 

result:

ok 1 number(s): "304447408"

Test #19:

score: 0
Accepted
time: 4ms
memory: 32364kb

input:

739 1389312924

output:

82391136 

result:

ok 1 number(s): "82391136"

Test #20:

score: 0
Accepted
time: 112ms
memory: 157020kb

input:

4211 1547865075

output:

988813357 

result:

ok 1 number(s): "988813357"

Test #21:

score: 0
Accepted
time: 72ms
memory: 135296kb

input:

3506 1605997004

output:

805360668 

result:

ok 1 number(s): "805360668"

Test #22:

score: 0
Accepted
time: 16ms
memory: 65068kb

input:

1568 1539239436

output:

1103237896 

result:

ok 1 number(s): "1103237896"

Test #23:

score: 0
Accepted
time: 0ms
memory: 3760kb

input:

16 1650693494

output:

334199630 

result:

ok 1 number(s): "334199630"