bug: 前缀和不要写错啊啊, 比如 s[r]-s[l-1]

#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N=4202;
int mod ;
int f[N][N],s[N][N],n;

 void sov(){
 	int i,j;
 	f[1][1]=s[1][1]=1;
 	
 	for(i=2;i<=n;i++){
 		for(j=1;j<=i;j++)
	 	if(i&1){
			 	f[i][j]=(s[i-1][i-1]-s[i-1][j-1]+mod)%mod;
			 	s[i][j]=s[i][j-1]+f[i][j],
			 	s[i][j]%=mod;
		}	
	 	else{
			 	f[i][j]=s[i-1][j-1];
			 	s[i][j]=s[i][j-1]+f[i][j],
			 	s[i][j]%=mod;
		}
 	} 
 	
 	cout<<(2*s[n][n])%mod<<endl;
 }
 signed main(){
 	cin>>n>>mod;
 	sov();
 }
 
 

 

posted on 2023-04-16 02:40  towboat  阅读(12)  评论(0)    收藏  举报