洛谷 P3205 [HNOI2010]合唱队(区间dp)
题目链接:
[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)相关推荐
- 洛谷P3205 [HNOI2010]合唱队 题解
洛谷P3205 [HNOI2010]合唱队 题解 题目链接:P3205 [HNOI2010]合唱队 题意: 为了在即将到来的晚会上有更好的演出效果,作为 AAA 合唱队负责人的小 A 需要将合唱队的人 ...
- 【区间dp】洛谷 P3205 [HNOI2010]合唱队
P3205 [HNOI2010]合唱队 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题意:有一个初始队形,这个初始队形可以是任意队形 给定一个理想队形,问你通过以下的排列方式有几 ...
- 洛谷 P3205 [HNOI2010]合唱队 解题报告
P3205 [HNOI2010]合唱队 题目描述 为了在即将到来的晚会上有更好的演出效果,作为AAA合唱队负责人的小A需要将合唱队的人根据他们的身高排出一个队形.假定合唱队一共N个人,第i个人的身高为 ...
- 洛谷——P3205 [HNOI2010]合唱队
P3205 [HNOI2010]合唱队 题目描述 为了在即将到来的晚会上有更好的演出效果,作为AAA合唱队负责人的小A需要将合唱队的人根据他们的身高排出一个队形.假定合唱队一共N个人,第i个人的身高为 ...
- P3205 [HNOI2010]合唱队 (区间dp)
[HNOI2010]合唱队 - 洛谷 分析: 根据题意我们发现,小a每次排队的时候,会出现两种情况 当前排入的人比初始队列中前一个人矮,排到最左边 当前排入的人比初始队列中前一个人高,排到最右边 现在 ...
- 洛谷P3205 [HNOI2010]合唱队
题目 为了在即将到来的晚会上有更好的演出效果,作为 AAA 合唱队负责人的小 A 需要将合唱队的人根据他们的身高排出一个队形.假定合唱队一共 nn 个人,第 ii 个人的身高为 h_ihi 米(10 ...
- 洛谷 P1063 能量项链 区间dp
洛谷 P1063 题意:在一串项链中,是环状的,第 i 颗珠子有两个能量a[i]和a[i+1],第i+1颗珠子有两个能量a[i+1]和a[i+2],可以合并两个珠子,得到a[i]*a[i+1]*a[i ...
- [洛谷]P1220 关路灯 (#区间dp)
题目描述 某一村庄在一条路线上安装了n盏路灯,每盏灯的功率有大有小(即同一段时间内消耗的电量有多有少).老张就住在这条路中间某一路灯旁,他有一项工作就是每天早上天亮时一盏一盏地关掉这些路灯. 为了给村 ...
- 【动态规划dp】区间DP模板 Acwing 282. 石子合并 | P3205 [HNOI2010]合唱队
区间DP 模板 282. 石子合并 #include<iostream> #include<cmath> #include<algorithm> #include& ...
最新文章
- stata F值缺失_stata面板数据回归操作之GMM
- json文件读取之reader.onload中的定义的变量在其函数外部进行处理
- 我们为什么要学数学?这里给你一个答案。
- object detection错误之Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
- WOOTConf 2017:Lockpicking,Willie Nelson开发人员等等
- cxpacket_如何避免CXPACKET?
- python整数缓存问题
- 概率论与数理统计【三】一维随机变量及其分布
- JNI用C加载JDK产生JVM虚拟机,并运行JAVA类main函数(MACOS/LINUX/WINDOWS)
- 伍楼阁使用的WordPress代码高亮插件使用说明
- 商业分析方法与工具总结
- Elasticsearch顶尖高手系列:高手进阶篇(一)
- Android代码控制关闭软键盘的骚操作
- codevs5172 装病的聚聚 (最短路spfa的延伸应用)(对三角不等式的深入理解)--by lethalboy
- 1000行代码入门python-小白入门篇,Python到底是什么?
- 基于聚类算法的图像分割技术
- 如何定制allure报告的logo
- 物联网让生活更加轻松的五种方式
- 关于dubbo的rpc基于传输层一说
- 接口测试 Pytest的简单示例
热门文章
- matlab读数据库,matlab读写数据库
- docker + swarm 集群
- 从“互联网+教育”到“教育+互联网”——互联网文化基因视域下的审思
- kk上的服务器信息,kk云服务器地址
- Kotlin 类、属性、方法、继承、多态
- 20230103编译ToyBrick的TB-RK3588X的Andorid12的LOG04
- 新手python的自学总结(已拿到百度offer)
- gogs 导致 ssh 钥匙对登录失败的问题
- 【不看后悔系列—小白手册】超实用Python入门指南!包括学习思维导图
- 尚医通-医院详情功能(二十七)