标签:区间DP。
题解:

  首先分析题目,根据题目中的列队方式以及数据范围,我们容易想到O(n2)的算法,也就是区间DP。发现直接dp[L][R],不能转移,于是添加一个dp[L][R][0/1],0表示这个区间最后从左边插入,1则表示右边。
  然后分析从左边插入,上一个数要么是从左的要么是从右的,因为这个数在左,所以都要比他们大才符合条件。故(H[L]<H[L+1]||H[L]<H[R]),符合条件才能转移:dp[L][R][0]=dp[L+1][R][0]*(H[L]<H[L+1])+dp[L+1][R][1]*(H[L]<H[R]);
  从右边插入类似:(H[R]>H[L]||H[R]>H[R-1]),dp[L][R][1]=dp[L][R-1][0]*(H[R]>H[L])+dp[L][R-1][1]*(H[R]>H[R-1]);
  然后答案自然就是dp[1][n][0]+dp[1][n][1]了。

 #include<cstdio>
#include<iostream>
#include<algorithm>
#define LL long long
using namespace std;
const int MAXN=,mod=,INF=0x3f3f3f3f;
int n;
int H[MAXN],dp[MAXN][MAXN][];
int gi(){ int res; scanf("%d",&res); return res;}
int main()
{
freopen("chorus.in","r",stdin);
freopen("chorus.out","w",stdout);
n=gi();
for(int i=;i<=n;i++) H[i]=gi();
for(int i=;i<n;i++)
{
if(H[i]<H[i+])
{
dp[i][i+][]=;
dp[i][i+][]=;
}
}
for(int i=;i<n;i++)
{
for(int j=;j+i<=n;j++)
{
int L=j,R=j+i;
dp[L][R][]=(dp[L+][R][]*(H[L]<H[L+])+dp[L+][R][]*(H[L]<H[R]))%mod;
dp[L][R][]=(dp[L][R-][]*(H[R]>H[L])+dp[L][R-][]*(H[R]>H[R-]))%mod;
}
}
printf("%d\n",(dp[][n][]+dp[][n][])%mod);
return ;
}

最新文章

  1. Comparing the MSTest and Nunit Frameworks
  2. 基于Ruby的watir-webdriver自动化测试方案与实施(二)
  3. C++ string类的实现
  4. Spring使用ThreadLocal技术来处理这些问题
  5. 用 windows GDI 实现软光栅化渲染器--gdi3d(开源)
  6. Nova 操作汇总(限 libvirt 虚机) [Nova Operations Summary]
  7. 十天冲刺---Day8
  8. 利用ASP.NET加密和解密Web.config中连接字符串
  9. PostgreSQL auto_explain
  10. DOS批处理命令-call命令
  11. 【译】 AWK教程指南 9读取命令行上的参数
  12. 第32讲 UI组件之 时间日期控件DatePicker和TimePicker
  13. javascript 定义类(转载)
  14. 简单的java Hadoop MapReduce程序(计算平均成绩)从打包到提交及运行
  15. ActiveMQ集群支持Master/Slave模式
  16. ScrollView嵌套ListView后,进入页面不从顶部开始显示的问题解决
  17. 【原创】大数据基础之Logstash(4)高可用
  18. Linux 字符编码 查看与转换
  19. IntelliJ Idea 授权服务器使用
  20. [转载]C++的顺序点(sequence point)和副作用(side effect)

热门文章

  1. (转) 实现wince datagrid 上下滑屏数据浏览
  2. spring源码解析——2容器的基本实现(第2版笔记)
  3. 九度OJ 1111:单词替换 (查找)
  4. select version();desc mysql.user;
  5. windows定时计划备份MySql
  6. 使用webpack4搭建一个基于Vue的组件库
  7. HDU3480 Division —— 斜率优化DP
  8. 「LuoguP1402」 酒店之王(最大流
  9. 算法实现c语言--03
  10. JUC类图