区间 dp

$f[i][j][1/0]$ 表示将理想数列的 $[i,j]$ 区间排好的方案数

$f[i][j][1]$ 表示最后进去的是第 $i$ 个人

$f[i][j][0]$ 表示最后进去的是第 $j$ 个人

根据判断条件进行转移

#include <bits/stdc++.h> 

const int N = , Mod = ;

int f[N][N][];
int A[N]; int main() {
int n;
std:: cin >> n;
for(int i = ; i <= n; i ++) std:: cin >> A[i];
for(int i = ; i <= n; i ++) f[i][i][] = ; //f[i][i][0] = 1;
for(int Len = ; Len <= n; Len ++) {
for(int i = ; i <= n; i ++) {
int j = i + Len - ;
if(j > n) continue;
if(A[i] < A[i + ]) f[i][j][] = (f[i][j][] + f[i + ][j][]) % Mod;
if(A[i] < A[j]) f[i][j][] = (f[i][j][] + f[i + ][j][]) % Mod;
if(A[j] > A[j - ]) f[i][j][] = (f[i][j][] + f[i][j - ][]) % Mod;
if(A[j] > A[i]) f[i][j][] = (f[i][j][] + f[i][j - ][]) % Mod;
}
}
std:: cout << (f[][n][] + f[][n][]) % Mod;
return ;
}

最新文章

  1. myhandle
  2. js实现xml转化成字符串
  3. ExtJs4中的复选树级联选择
  4. HTTP协议中状态码的应用
  5. 转:php 获取时间今天明天昨天时间戳
  6. H5时代的新存储简介
  7. 【BZOJ 1026】 [SCOI2009]windy数
  8. 转:ASP.NET中的SESSION实现与操作方法
  9. fork进程函数总结
  10. 学习OpenBlas
  11. poj1260
  12. Struts2, jquery, select二级联动
  13. Hibernate 配置文件hibernate.cfg.xml的详细
  14. 视频转GIF动态图怎样实现
  15. 学习CSS布局 - margin: auto;
  16. 关于PCB开窗
  17. 软件包管理:rpm命令管理-查询
  18. tomcat内存溢出问题解决思路
  19. java抽象类和普通类的区别
  20. mysql安装错误总结

热门文章

  1. 深度挖坑:从数据角度看人脸识别中Feature Normalization,Weight Normalization以及Triplet的作用
  2. C# 注册windows 服务
  3. Sublime Text 添加java环境
  4. ubuntu14.04
  5. VS2019编译 当前最新版chromium
  6. form表单提交后结果乱码的解决方法
  7. iOS 9.0中UIAlertController的用法。
  8. SuperMemo method
  9. Mybatis报错: There is no getter for property named xxx
  10. Window脚本学习笔记之BAT简介