洛谷 P3205 [HNOI2010] 合唱队

思路

先设 d p [ i ] [ j ] dp[i][j] dp[i][j] 为区间 [ i , j ] [i, j] [i,j] 的队形方案数。

考虑如何转移:对于区间 [ i , j ] [i, j] [i,j] 来说,最后一个入队的要么是 i i i,要么是 j j j。

所以分类讨论:

  1. 当 j j j 为最后一个入队的时, i i i 与 j − 1 j - 1 j−1 都可能是倒数第二个入队的。要满足的条件分别是 h [ i ] < h [ j ] h[i] < h[j] h[i]<h[j] 和 h [ j − 1 ] < h [ i ] h[j - 1] < h[i] h[j−1]<h[i]。
  2. 当 i i i 为最后一个入队的时, j j j 与 i + 1 i + 1 i+1 都可能是倒数第二个入队的。要满足的条件分别是 h [ i ] < h [ j ] h[i] < h[j] h[i]<h[j] 和 h [ i ] < h [ i + 1 ] h[i] < h[i + 1] h[i]<h[i+1]。

发现上一个状态有两种,即:在上一个状态中,最后一个进来的数(也就是当前状态的倒数第二个进来的数)是在【队尾/队头】。

因此我们要丰富一下状态定义:设 d p [ i ] [ j ] [ 0 ] dp[i][j][0] dp[i][j][0] 表示最后一个进来的数在【队头】的方案数, d p [ i ] [ j ] [ 1 ] dp[i][j][1] dp[i][j][1] 表示最后一个进来的数在【队尾】的方案数。最后答案就是 d p [ 1 ] [ n ] [ 0 ] + d p [ 1 ] [ n ] [ 1 ] dp[1][n][0] + dp[1][n][1] dp[1][n][0]+dp[1][n][1]。

代码

cpp 复制代码
#include <bits/stdc++.h>

using namespace std;

const int maxn = 1e3 + 7;
const int mod  = 19650827;

int n, a[maxn];
int dp[maxn][maxn][2];
int main() {
	scanf("%d", &n);
	for (int i = 1; i <= n; ++i)
	    scanf("%d", a + i), 
		dp[i][i][0] = 1;

	for (int len = 2; len <= n; ++len) {
		for (int i = 1; i + len - 1 <= n; ++i) {
			int j = i + len - 1;
			
			if (a[i] < a[j]) dp[i][j][1] = (dp[i][j][1] + dp[i][j - 1][0]) % mod;
			if (a[j - 1] < a[j]) dp[i][j][1] = (dp[i][j][1] + dp[i][j - 1][1]) % mod;
		    
		    if (a[i] < a[j]) dp[i][j][0] = (dp[i][j][0] + dp[i + 1][j][1]) % mod;
			if (a[i] < a[i + 1]) dp[i][j][0] = (dp[i][j][0] + dp[i + 1][j][0]) % mod;
		}
	}
	printf("%d\n", (dp[1][n][0] + dp[1][n][1]) % mod);
	return 0;
} 
相关推荐
2501_9248787314 小时前
数据智能驱动进化:AdAgent 多触点归因与自我学习机制详解
人工智能·逻辑回归·动态规划
YYuCChi1 天前
代码随想录算法训练营第三十七天 | 52.携带研究材料(卡码网)、518.零钱兑换||、377.组合总和IV、57.爬楼梯(卡码网)
算法·动态规划
罗湖老棍子1 天前
括号配对(信息学奥赛一本通- P1572)
算法·动态规划·区间dp·字符串匹配·区间动态规划
一只小小的芙厨1 天前
寒假集训笔记·树上背包
c++·笔记·算法·动态规划
金融RPA机器人丨实在智能1 天前
2026动态规划新风向:实在智能Agent如何以自适应逻辑重构企业效率?
算法·ai·重构·动态规划
问好眼2 天前
【信息学奥赛一本通】1275:【例9.19】乘积最大
c++·算法·动态规划·信息学奥赛
菜鸟233号2 天前
力扣647 回文子串 java实现
java·数据结构·leetcode·动态规划
葵花楹2 天前
【算法题】【动态规划2】【背包动态规划】
算法·动态规划
2501_924878732 天前
企业级营销安全防线:AdAgent 合规风控体系设计与实践
人工智能·逻辑回归·动态规划
觅特科技-互站2 天前
陌讯视觉‘动态密度流’模型:亚运场馆到前海政务厅,98.6%聚众事件5秒精准定位|技术拆解+SDK实录
逻辑回归·动态规划