- [HNOI2010] 合唱队
?
- 2025-5-9 20:05:02 @
#include<iostream>
#include<cstring>
using namespace std;
int n,a[1001],dp[1001][1001][2];
int main(){
cin >> n;
for (int i=1;i<=n;i++){
cin >> a[i];
dp[i][i][0]=1;
//dp[i][i][1]=1;
}
for (int i=2;i<=n;i++){ //长度
for (int j=1;j<=n-i+1;j++){ //起点
if (a[j]<a[j+1]){ //假设第一个是新加进来的
dp[j][j+i-1][0]+=dp[j+1][j+i-1][0];
dp[j][j+i-1][0]%=19650827;
}
if (a[j]<a[j+i-1]){
dp[j][j+i-1][0]+=dp[j+1][j+i-1][1];
dp[j][j+i-1][0]%=19650827;
}
if (a[j+i-1]>a[j]){ //假设最后一个是新加进来的
dp[j][j+i-1][1]+=dp[j][j+i-2][0];
dp[j][j+i-1][0]%=19650827;
}
if (a[j+i-1]>a[j+i-2]){
dp[j][j+i-1][1]+=dp[j][j+i-2][1];
dp[j][j+i-1][0]%=19650827;
}
}
}
cout << (dp[1][n][0]+dp[1][n][1])%19650827;
return 0;
}
0 comments
No comments so far...
Information
- ID
- 380
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 7
- Tags
- # Submissions
- 43
- Accepted
- 12
- Uploaded By