正睿国庆DAY2动态规划专题

排列-例题

  1. 1~n 的排列个数,每个数要么比旁边两个大,要么比旁边两个小

    \(f[i][j]\) 填了前i个数,未填的数有\(j\)个比第\(i\)个小,是波峰

    \(g[i][j]\)是波谷

    \(f[i][j] -g[i+1][j']\)

    \(g[i][j]-f[i+1][j']\)

    可以前缀和优化

  2. n个数的排列中恰好有k个位置满足\(a_i<a_{i+1}\)的个数

    可能是今天唯一自己想出来的题了23333

    \(f[i][j]\) 前i个数的排列有j个小于号的排列个数,并考虑插入第\(i+1\)个数

    放最前面:\(f[i][j]->f[i+1][j]\)

    放中间的小于号 :\(j*f[i][j] -> f[i+1][j]\)

    放中间的大于号 :\((i-1-j)*f[i][j] -> f[i+1][j+1]\)

    放最后面:\(f[i][j]->f[i][j-1]\)

    然后可以搞组合计数优化

排列dp的处理总结:

  1. 枚举个数/剩余个数
  2. 插入法(通常更优)

优化复杂度

状态数

  • 合理设计
  • 去掉没有用的状态

转移

  • 前缀和
  • 数据结构优化
  • 矩阵优化(递推)
  • trivival -> non-trivival (改掉某些转移,便乘不显然的形式)

优化空间

  • 滚动数组

继续例题

  1. CF273D

  2. Minimizing Maximizer

    f[i]为\(1- i\)被覆盖的最小代价,用树状数组维护区间\(f\)最小值就可以了

  3. CF1209E2

    即每行选一个数使得和最大

    1. 普通dp: \(3^n*m\)
    2. 每一列只需要考虑前n个最大的
    3. 考虑每列循环移位同样的步数答案都一样,可以优化成\(2^nn^2\)
  4. Peaks

    \(n\) 个数排列中恰好有 \(k\) 个峰的方案数,\(\pmod {239}\)

    \(n\leq 10^{15},k\leq 30\)

    \(f[i][j]\) 前\(i\)个数,有\(j\)个峰,考虑添加第\(i+1\)个数

    1. 搞掉前面的一个峰:\(f[i+1][j]+=f[i][j]*2j\)
    2. 否则\(f[i+1][j+1]+=f[i][j]*(i+1-2*j)\)

    可以写成矩阵乘法,且\(M_i=M_i+239\)

正睿国庆DAY2动态规划专题的更多相关文章

  1. 正睿OI国庆DAY2:图论专题

    正睿OI国庆DAY2:图论专题 dfs/例题 判断无向图之间是否存在至少三条点不相交的简单路径 一个想法是最大流(后来说可以做,但是是多项式时间做法 旁边GavinZheng神仙在谈最小生成树 陈主力 ...

  2. 8.5 正睿暑期集训营 Day2

    目录 2018.8.5 正睿暑期集训营 Day2 总结 A.占领地区(前缀和) B.配对(组合) C 导数卷积(NTT) 考试代码 T1 T2 T3 2018.8.5 正睿暑期集训营 Day2 时间: ...

  3. 正睿OI国庆day1

    正睿OI国庆day1 T1 \[ S_n=1*S_{n-1}+1*F_{n-1}+1*F_{n-2}+1*f_{n-1}+1*f_{n-2} \] \[ F_{n}=0*S_{n-1}+1*F_{n- ...

  4. 11.6 正睿停课训练 Day17

    目录 2018.11.6 正睿停课训练 Day17 A chinese(思路 计数) B physics(单调队列/剪枝 DP) C chemistry(期望 DP) 考试代码 A B C 2018. ...

  5. 8.10 正睿暑期集训营 Day7

    目录 2018.8.10 正睿暑期集训营 Day7 总结 A 花园(思路) B 归来(Tarjan 拓扑) C 机场(凸函数 点分治) 考试代码 A B C 2018.8.10 正睿暑期集训营 Day ...

  6. 10.31 正睿停课训练 Day13

    目录 2018.10.31 正睿停课训练 Day13 A Poker(期望) B Label(高斯消元) C Coin(二分图染色 博弈) 考试代码 A(打表) B 2018.10.31 正睿停课训练 ...

  7. 11.5 正睿停课训练 Day16

    目录 2018.11.5 正睿停课训练 Day16 A 道路规划(思路) B 逻辑判断(枚举 位运算/DP 高维前缀和) C 区间(贪心/树状数组) 考试代码 A B C 2018.11.5 正睿停课 ...

  8. 11.2 正睿停课训练 Day15

    目录 2018.11.2 正睿停课训练 Day15 A 郁闷的小G(二分) B 小G的树(树形DP) C 数的距离(思路) 考试代码 B C 2018.11.2 正睿停课训练 Day15 时间:3.5 ...

  9. 11.1 正睿停课训练 Day14

    目录 2018.11.1 正睿停课训练 Day14 A 字符串 B 取数游戏(贪心) C 魔方(模拟) 考试代码 B C 2018.11.1 正睿停课训练 Day14 时间:3.5h 期望得分:100 ...

随机推荐

  1. [The Preliminary Contest for ICPC Asia Nanjing 2019] A-The beautiful values of the palace(二维偏序+思维)

    >传送门< 前言 这题比赛的时候觉得能做,硬是怼了一个半小时,最后还是放弃了.开始想到用二维前缀和,结果$n\leq 10^{6}$时间和空间上都爆了,没有办法.赛后看题解用树状数组,一看 ...

  2. os.linesep提取当前平台使用的换行符

    1. unix平台的换行符:\n 2.DOS/Win32平台的换行符:\r\n 3.通过os.linesep函数可以提取当前所处平台的换行符,从而实现不需要关注程序运行在什么平台,也不需要根据不同的平 ...

  3. python查找时,不支持compound class

    1.python使用如下代码查找页面上的元素时, browser.findElement_by_class_name("widget-content nopadding") 报错: ...

  4. 洛谷P1196[NOI2002]银河英雄传说-并查集扩展

    银河英雄传说 题意:在并查集的基础上,还要求出同一集合的两个点的距离 这道题用并查集自己是知道的,但是竟然可以这么骚的操作. 下面转自大佬的查详细题解 初见这道题,首先想到的方法当然是直接模拟,模拟每 ...

  5. 共价大爷游长沙 lct 维护子树信息

    这个题目的关键就是判断 大爷所有可能会走的路 会不会经过询问的边. 某一条路径经过其中的一条边, 那么2个端点是在这条边的2测的. 现在我们要判断所有的路径是不是都经过 u -> v 我们以u为 ...

  6. poj 2117 Electricity(tarjan求割点删掉之后的连通块数)

    题目链接:http://poj.org/problem?id=2117 题意:求删除一个点后,图中最多有多少个连通块. 题解:就是找一下割点,根节点的割点删掉后增加son-1(son为子树个数),非根 ...

  7. Atcoder C - Closed Rooms(思维+bfs)

    题目链接:http://agc014.contest.atcoder.jp/tasks/agc014_c 题意:略. 题解:第一遍bfs找到所有可以走的点并标记步数,看一下最少几步到达所有没锁的点,然 ...

  8. R语言基础入门

    请先安装好R和RStudio 如果不干别的,控制台就是一个内置计算器 2 * 3 #=> 6 sqrt(36) #=> 6, square root log10(100) #=> 2 ...

  9. buuctf 随便注 writeup

    1.0 打开页面 显然这个题的考点是注入,那我们来测一下 2.0 sql注入测试 1 2 输入 1' 后发现没有回显,改为 1' --+ 后,有回显,应该在这存在注入点 试一下 1' and 1=1 ...

  10. win、mac 设置 php上传文件大小限制

    修改php.ini win平台WAMP修改 步骤 左键点击wamp 选择php 在弹出的窗口中选择php.ini 在打开的文件中进行修改(修改步骤如下) 修改完毕,保存并重启wamp mac  MAM ...