Description

Input

Output

Sample Input

4
1701 1702 1703 1704

Sample Output

8

HINT

区间$dp$,首先每个点被放入队伍时队伍中所有人构成的序列中连续的一段
那么这个人在放入时一定是由最左边或最右边的人转移过来的,即由一段向外扩展转移
这就是一个基础的区间$dp$模型,注意细节即可
代码:
 #include<iostream>
#include<cstdio>
#define mod 19650827
using namespace std;
int n;int a[],f[][][];
int main()
{
cin>>n;
for(int i=;i<=n;i++) cin>>a[i];
for(int i=;i<n;i++)
if(a[i]<a[i+])
f[i][i+][]=f[i][i+][]=;
for(int len=;len<n;len++)
for(int l=;l+len<=n;l++)
{
int r=l+len;
if(a[l]<a[l+]) f[l][r][]=(f[l][r][]+f[l+][r][])%mod;
if(a[l]<a[r]) f[l][r][]=(f[l][r][]+f[l+][r][])%mod;
if(a[r]>a[r-]) f[l][r][]=(f[l][r][]+f[l][r-][])%mod;
if(a[r]>a[l]) f[l][r][]=(f[l][r][]+f[l][r-][])%mod;
}
cout<<(f[][n][]+f[][n][])%mod<<endl;
return ;
}

[BZOJ1996] chorus合唱队的更多相关文章

  1. 【BZOJ1996】[Hnoi2010]chorus 合唱队 区间DP

    [BZOJ1996][Hnoi2010]chorus 合唱队 Description Input Output Sample Input 4 1701 1702 1703 1704 Sample Ou ...

  2. bzoj千题计划211:bzoj1996: [Hnoi2010]chorus 合唱队

    http://www.lydsy.com/JudgeOnline/problem.php?id=1996 f[i][j][0/1] 表示已经排出队形中的[i,j],最后一个插入的人在[i,j]的i或j ...

  3. bzoj1196:[Hnoi2010]chorus 合唱队

    这数据范围明显的区间dp啊...然而据说二维会wa...那就写三维把... #include<cstdio> #include<cstring> #include<cct ...

  4. BZOJ 1996: [Hnoi2010]chorus 合唱队(dp)

    简单的dp题..不能更水了.. --------------------------------------------------------------- #include<cstdio&g ...

  5. 【BZOJ1996】合唱队(动态规划)

    [BZOJ1996]合唱队(动态规划) 题面 BZOJ 题解 很容易的一道题 因为每个人不是放在了左边就是放在了右边 所以每次放好的人必定是原序列的一个子串 所以,很容易想到区间\(dp\) 设\(f ...

  6. 【BZOJ】1996: [Hnoi2010]chorus 合唱队【区间dp】

    1996: [Hnoi2010]chorus 合唱队 Time Limit: 4 Sec  Memory Limit: 64 MBSubmit: 2088  Solved: 1371[Submit][ ...

  7. BZOJ1996 [Hnoi2010]chorus 合唱队

    很容易想到区间DP 然后发现这个区间只和圆序列的最后一个数有关,而原序列的最后一个数只可能是现在区间的头或者尾 令$f[i][j][0/1]$表示在区间$[i, j]$之间,原序列的最后一个数是当前区 ...

  8. BZOJ1996:[HNOI2010]CHORUS 合唱队(区间DP)

    Description Input Output Sample Input 4 1701 1702 1703 1704 Sample Output 8 HINT Solution 辣鸡guide真难用 ...

  9. BZOJ1996: [Hnoi2010]chorus 合唱队 (DP)

    就是想水一发 #include <stdio.h> #include <algorithm> #include <iostream> using namespace ...

随机推荐

  1. DELPHI中调用XSD去验证XML的合法性

    procedure TFrmPrintReport.Button3Click(Sender: TObject);var  SchemaDoc, XmlDoc: IXMLDOMDocument2;  S ...

  2. Pulsar

    The Apache Software Foundation Announces Apache® Pulsar™ as a Top-Level Project : The Apache Softwar ...

  3. lowB三人组算法-冒泡排序-选择排序-插入排序

    冒泡排序 时间复杂度:O(n2)  算法稳定 第一趟,从第一个数开始,相邻两个数比较,大的数交换放后,交换到最后位置得出一个第一大数 第二趟,从第一个数开始,相邻两个数比较,大的数交换放后,交换到倒数 ...

  4. kafka-stream数据清洗

    1.数据清洗业务类LogProcessor package com.css.kafka.kafka_stream; import org.apache.kafka.streams.processor. ...

  5. 观 浅谈HTTP中Get与Post的区别

    看完解决了一些模糊不清的.错误的理解.

  6. BroadcastReceiver 翻译

    1. 动态注册与退出 If registering a receiver in your Activity.onResume() implementation, you should unregist ...

  7. 深入了解跟踪(trace)

    深入了解跟踪(trace) 转自:https://www.cnblogs.com/zhijianliutang/p/4113911.html 前言 一提到跟踪俩字,很多人想到警匪片中的场景,同样在我们 ...

  8. Spotlight 连接SuSE11 linux报错的解决方法

    1. 在客户端安装spotlight: 2.在SuSE11中建立新用户,并且安装了sysstat包: 3.使用spotlight连接服务器,连接时提示    errorcode:3114   reas ...

  9. POJ1159:Palindrome(LCS小应用 回文)

    地址:http://poj.org/problem?id=1159 题目需求: 给你一个字符串,求最少添加多少字符可以使之构成回文串. 题目解析: 简单做法是直接对它和它的逆序串求最长公共子序列长度l ...

  10. 我的第一次NGS分析操作

    部分参考自:生物信息学100个基础问题 —— 番外2: 用Anaconda快速搭建生物信息学分析平台 - 孟浩巍的文章 - 知乎 https://zhuanlan.zhihu.com/p/357114 ...