传送门


一个与相对大小关系相关的$DP$

设$f_{i,j,0/1}$表示放了$i$个,其中最后一个数字在$i$个中是第$j$大,且最后一个是极大值($1$)或极小值时($0$)的方案数。转移:

$$f_{i+1,j,1}=\sum\limits_{k=1}^{j-1} f_{i,k,0},f_{i+1,j,0} = \sum\limits_{k=j}^{i} f_{i,k,1}$$

发现转移可以前缀和优化,优化后复杂度为$O(n^2)$可以通过此题。

  1. #include<bits/stdc++.h>
  2. //This code is written by Itst
  3. using namespace std;
  4.  
  5. inline int read(){
  6. ;
  7. ;
  8. char c = getchar();
  9. while(c != EOF && !isdigit(c)){
  10. if(c == '-')
  11. f = ;
  12. c = getchar();
  13. }
  14. while(c != EOF && isdigit(c)){
  15. a = (a << ) + (a << ) + (c ^ ');
  16. c = getchar();
  17. }
  18. return f ? -a : a;
  19. }
  20.  
  21. ;
  22. ];
  23.  
  24. int main(){
  25. #ifndef ONLINE_JUDGE
  26. freopen("2467.in" , "r" , stdin);
  27. //freopen("2467.out" , "w" , stdout);
  28. #endif
  29. N = read();
  30. MOD = read();
  31. dp[][][] = dp[][][] = ;
  32. ; i <= N ; ++i){
  33. ; j <= i ; ++j){
  34. dp[i][j][] = dp[i - ][j][];
  35. dp[i][j][] = dp[i - ][j - ][];
  36. }
  37. ; j <= i ; ++j)
  38. dp[i][j][] = (dp[i][j][] + dp[i][j - ][]) % MOD;
  39. for(int j = i ; j ; --j)
  40. dp[i][j][] = (dp[i][j][] + dp[i][j + ][]) % MOD;
  41. }
  42. cout << (dp[N][N][] + dp[N][][]) % MOD;
  43. ;
  44. }

Luogu2467 SDOI2010 地精部落 DP的更多相关文章

  1. BZOJ 1925: [Sdoi2010]地精部落( dp )

    dp(i,j)表示1~i的排列中, 以1~j为开头且开头是下降的合法方案数 这种数列具有对称性, 即对于一个满足题意且开头是上升的n的排列{an}, 令bn = n-an+1, 那么{bn}就是一个满 ...

  2. [BZOJ1925][SDOI2010]地精部落(DP)

    题意 传说很久以前,大地上居住着一种神秘的生物:地精. 地精喜欢住在连绵不绝的山脉中.具体地说,一座长度为 N 的山脉 H可分 为从左到右的 N 段,每段有一个独一无二的高度 Hi,其中Hi是1到N ...

  3. 【BZOJ】1925: [Sdoi2010]地精部落 DP+滚动数组

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1925 题意:输入一个数N(1 <= N <= 4200),问将这些数排列成折线 ...

  4. [SDOI2010]地精部落 DP

    LG传送门 DP好题 题意很简单,就是求1-n的排列,满足一个数两边的数要么都比它大要么都比它小,求这样的排列个数对\(p\)取膜的值(为了表述简单,我们称这样的排列为波动序列). 这个题我第一眼看到 ...

  5. luogu2467 [SDOI2010]地精部落

    题目大意 求在$[1,n]$的排列中是波动序列的数量. 题解 性质 当我们对波动序列$a$进行以下操作时,得到的新序列仍然是个波动序列: 若$a_i = a_j+1且|j-i|>1$,将$a_i ...

  6. P2467 [SDOI2010]地精部落 DP

    传送门:https://www.luogu.org/problemnew/show/P2467 参考与学习:https://www.luogu.org/blog/user55639/solution- ...

  7. luogu2467/bzoj1925 地精部落 (dp)

    求1~n组成一个抖动序列的方案数 首先这种序列有一些非常妙妙但我发现不了的性质 1.对于一个抖动序列,如果i和i+1不相邻,则交换i和i+1,他还是个抖动序列 2.对于一个抖动序列,我把每个数拿n+1 ...

  8. Luogu 2467[SDOI2010]地精部落 - DP

    Solution 这题真秒啊,我眼瞎没有看到这是个排列 很显然, 有一条性质: 第一个是山峰 和 第一个是山谷的情况是一一对应的, 只需要把每个数 $x$  变成 $n-x+1$ 然后窝萌定义数组 $ ...

  9. 【BZOJ1925】[Sdoi2010]地精部落 组合数+DP

    [BZOJ1925][Sdoi2010]地精部落 Description 传说很久以前,大地上居住着一种神秘的生物:地精. 地精喜欢住在连绵不绝的山脉中.具体地说,一座长度为 N 的山脉 H可分 为从 ...

随机推荐

  1. css div相对屏幕永远居中

    不管屏幕如何滑动,该div始终保持在屏幕正中央(支持IE7(包括IE7)以上版本) <div class="loginBox"></div> .loginB ...

  2. openvswitch技术总结

    OVS技术总结 一.OVS的组成 二.OVS的匹配条件和动作 三.OVS的发展方向 四.OVS的操作实践 OVS与Namespace配合模拟租户之间的数据通信 基本思路: Namespace模拟出不同 ...

  3. 爬虫 scrapy 笔记

    scrapy 基础 1.  创建一个spider项目 a)         Scrapy startproject project_name [project_dir] b)         Cd p ...

  4. python接口测试—get请求(一)

    python 做借口测试用到的是requests模块,首先要导入requests库,pip install requests 1.get直接请求方式 以豆瓣网为例: url = 'https://re ...

  5. Asp.net Mvc、webApi配置允许跨域

    Web.config 下<system.webServer> 节点下配置 <httpProtocol> <customHeaders> <add name=& ...

  6. BOM 清除

    [root@test3 11]# gcc 11.2.c11.2.c:1: 错误:程序中有游离的 ‘\357’ 8进制,相当于16进制 ef11.2.c:1: 错误:程序中有游离的 ‘\273’11.2 ...

  7. Scrapy爬取遇到的一点点问题

    学了大概一个月Scrapy,自己写了些东东,遇到很多问题,这几天心情也不大好,小媳妇人也不舒服,休假了,自己研究了很久,有些眉目了 利用scrapy 框架爬取慕课网的一些信息 步骤一:新建项目 scr ...

  8. git命令设置简写(别名)

    ### git命令设置简写(别名) 前言:有时候在执行git命令比较多的情况下,每次敲git命令比较费时,同时有些命令比如cherry-pick这种比较长时更是费时,所以可以通过设置命令行简写来设置. ...

  9. Django电商项目---完成用户中心(订单中心+收货地址)day7

    完成用户中心(收货地址) df_user/views.py df_user/urls.py templates/df_user/user_center_site.html 界面显示 完成用户中心(全部 ...

  10. 第 15 章 位操作(fields)

    /*----------------------------------- fields.c -- 定义并使用字段 -----------------------------------*/ #inc ...