题目链接:

[HNOI2010]合唱队 - 洛谷https://www.luogu.com.cn/problem/P3205

 思路:

这题我是看了题解才做出来的,贴一下这位大佬的博客题解 P3205 【[HNOI2010]合唱队】 - zhaohaikun's blog - 洛谷博客

用到了区间dp,每个人有插入到左边和右边两种可能,插入哪边与当前的人和他前面的人的谁比较高有关系。具体思路见代码。

#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e3+5;
const int mod = 19650827;
int n;
int h[maxn];
int f[maxn][maxn][2];
/* f[i][j][0]表示的是排在第i位的人从左边插入的方案数f[i][j][1]表示的是排在第j位的人从右边插入的方案数 */
int main(){cin >> n;for(int i=1; i<=n; i++){//dp初始化,当只有一个人的时候,默认是从右边插入的cin >> h[i];f[i][i][1] = 1;}for(int len=2; len<=n; len++){for(int i=1,j=i+len-1; j<=n; i++, j++){//假如当前的人是插入到第i位,是从左边插入的,那说明他比在他前面一次插入的人矮//而在他前面一次插入的人,要么插到了最左边(第i+1位),要么插到了最右边(第j位)if(h[i] < h[i+1]) f[i][j][0] += f[i+1][j][0];if(h[i] < h[j]) f[i][j][0] += f[i+1][j][1];//假如当前的人是插入到第j位,是从右边插入的,那么说明他比在他前面一次插入的人高//而在他前面一次插入的人,要么插到最左边(第i位),要么插到最右边(第j-1位)if(h[j] > h[i]) f[i][j][1] += f[i][j-1][0];if(h[j] > h[j-1]) f[i][j][1] += f[i][j-1][1];//取模f[i][j][0] %= mod;f[i][j][1] %= mod;}}cout << (f[1][n][0] + f[1][n][1]) % mod << '\n';
}

洛谷 P3205 [HNOI2010]合唱队(区间dp)相关推荐

  1. 洛谷P3205 [HNOI2010]合唱队 题解

    洛谷P3205 [HNOI2010]合唱队 题解 题目链接:P3205 [HNOI2010]合唱队 题意: 为了在即将到来的晚会上有更好的演出效果,作为 AAA 合唱队负责人的小 A 需要将合唱队的人 ...

  2. 【区间dp】洛谷 P3205 [HNOI2010]合唱队

    P3205 [HNOI2010]合唱队 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题意:有一个初始队形,这个初始队形可以是任意队形 给定一个理想队形,问你通过以下的排列方式有几 ...

  3. 洛谷 P3205 [HNOI2010]合唱队 解题报告

    P3205 [HNOI2010]合唱队 题目描述 为了在即将到来的晚会上有更好的演出效果,作为AAA合唱队负责人的小A需要将合唱队的人根据他们的身高排出一个队形.假定合唱队一共N个人,第i个人的身高为 ...

  4. 洛谷——P3205 [HNOI2010]合唱队

    P3205 [HNOI2010]合唱队 题目描述 为了在即将到来的晚会上有更好的演出效果,作为AAA合唱队负责人的小A需要将合唱队的人根据他们的身高排出一个队形.假定合唱队一共N个人,第i个人的身高为 ...

  5. P3205 [HNOI2010]合唱队 (区间dp)

    [HNOI2010]合唱队 - 洛谷 分析: 根据题意我们发现,小a每次排队的时候,会出现两种情况 当前排入的人比初始队列中前一个人矮,排到最左边 当前排入的人比初始队列中前一个人高,排到最右边 现在 ...

  6. 洛谷P3205 [HNOI2010]合唱队

    题目 为了在即将到来的晚会上有更好的演出效果,作为 AAA 合唱队负责人的小 A 需要将合唱队的人根据他们的身高排出一个队形.假定合唱队一共 nn 个人,第 ii 个人的身高为 h_ihi​ 米(10 ...

  7. 洛谷 P1063 能量项链 区间dp

    洛谷 P1063 题意:在一串项链中,是环状的,第 i 颗珠子有两个能量a[i]和a[i+1],第i+1颗珠子有两个能量a[i+1]和a[i+2],可以合并两个珠子,得到a[i]*a[i+1]*a[i ...

  8. [洛谷]P1220 关路灯 (#区间dp)

    题目描述 某一村庄在一条路线上安装了n盏路灯,每盏灯的功率有大有小(即同一段时间内消耗的电量有多有少).老张就住在这条路中间某一路灯旁,他有一项工作就是每天早上天亮时一盏一盏地关掉这些路灯. 为了给村 ...

  9. 【动态规划dp】区间DP模板 Acwing 282. 石子合并 | P3205 [HNOI2010]合唱队

    区间DP 模板 282. 石子合并 #include<iostream> #include<cmath> #include<algorithm> #include& ...

最新文章

  1. stata F值缺失_stata面板数据回归操作之GMM
  2. json文件读取之reader.onload中的定义的变量在其函数外部进行处理
  3. 我们为什么要学数学?这里给你一个答案。
  4. object detection错误之Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
  5. WOOTConf 2017:Lockpicking,Willie Nelson开发人员等等
  6. cxpacket_如何避免CXPACKET?
  7. python整数缓存问题
  8. 概率论与数理统计【三】一维随机变量及其分布
  9. JNI用C加载JDK产生JVM虚拟机,并运行JAVA类main函数(MACOS/LINUX/WINDOWS)
  10. 伍楼阁使用的WordPress代码高亮插件使用说明
  11. 商业分析方法与工具总结
  12. Elasticsearch顶尖高手系列:高手进阶篇(一)
  13. Android代码控制关闭软键盘的骚操作
  14. codevs5172 装病的聚聚 (最短路spfa的延伸应用)(对三角不等式的深入理解)--by lethalboy
  15. 1000行代码入门python-小白入门篇,Python到底是什么?
  16. 基于聚类算法的图像分割技术
  17. 如何定制allure报告的logo
  18. 物联网让生活更加轻松的五种方式
  19. 关于dubbo的rpc基于传输层一说
  20. 接口测试 Pytest的简单示例

热门文章

  1. matlab读数据库,matlab读写数据库
  2. docker + swarm 集群
  3. 从“互联网+教育”到“教育+互联网”——互联网文化基因视域下的审思
  4. kk上的服务器信息,kk云服务器地址
  5. Kotlin 类、属性、方法、继承、多态
  6. 20230103编译ToyBrick的TB-RK3588X的Andorid12的LOG04
  7. 新手python的自学总结(已拿到百度offer)
  8. gogs 导致 ssh 钥匙对登录失败的问题
  9. 【不看后悔系列—小白手册】超实用Python入门指南!包括学习思维导图
  10. 尚医通-医院详情功能(二十七)