10pts求条玄关
查看原帖
10pts求条玄关
1207548
Zhengjingwen_mc楼主2025/6/14 15:37
#include <iostream>
using namespace std;
int n,dp[1010][1010][2],h[1010];
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>h[i];
	}
	for(int i=1;i<=n;i++){
		dp[i][i][0]=1;
	}
	for(int l=2;l<=n;l++){
		for(int i=1;i<=n;i++){
			int j=i+l-1;
			if(j>n){
				break;
			}
			if(h[i]<h[i+1]){
				dp[i][j][0]+=dp[i+1][j][0];
			}
			if(h[i]<h[j]){
				dp[i][j][0]+=dp[i+1][j][1];
			}
			if(h[j]>h[j-1]){
				dp[i][j][1]+=dp[i][j-1][0];
			}
			if(h[j]>h[i]){
				dp[i][j][1]+=dp[i][j-1][1];
			}
			dp[i][j][0]%=19650827;
			dp[i][j][1]%=19650827;
		}
	}
	cout<<(dp[1][n][0]+dp[1][n][1])%19650827;
	return 0;
}
2025/6/14 15:37
加载中...