斜率dp

【做题笔记】dp,但是国庆限定版

Day 1 方块消除 传送门 看到这个数据范围就可以猜测正解是 \(O(n^4)\) 的 dp,与这个差不多相符合的可以想到区间 dp。然后大胆猜测一下就是区间 dp,令 \(dp[i][j]\) 表示消除掉 \([i,j]\) 后的最大价值,这个显然可以从长度更短的区间转移过来。所以此题我们可以从 ......
国庆 笔记

10.4 国庆 环形dp与基环树笔记

1.知识点 环形dp 环形 dp 的概念 • 环形dp与基环树在许多环形结构的问题中,我们可以在环中从某个位置把环断开,把这个环变成线性的,然后进行 \(dp\) 等操作。 • 把能通过上述操作解决的环形问题称作 "可拆解的环形问题" 。 环形 dp 的两种策略 • 第一次在任意位置把环断开成链,按 ......
环形 国庆 笔记 10.4 10

DP 总结

最小包含串 模型描述 给定两个长度分别为 \(n,m\) 字符串 \(s,t\),求出长度最小的串,使两个串都是这个串的子序列。 基本解法 设 \(f_{i,j}\) 表示第一个字符串前 \(i\) 个和第二个字符串前 \(j\) 个字符的最短包含串长度。 边界:\(f_{i,0}=f_{0,i}= ......
DP

状态机DP,力扣188. 买卖股票的最佳时机 IV

状态机DP,力扣188. 买卖股票的最佳时机 IV 整数数组 prices 和一个整数 k ,其中 prices[i] 是某支给定的股票在第 i 天的价格。一次只能参与一笔交易,最多可以进行 k 笔交易,求最大利润。 确定状态f[n+1][k+2][2],f[i][j][0]、f[i][j][1]分 ......
时机 状态 股票 188 IV

重学OI#4 简单dp

观前须知:本文顺序较为混乱,根据本人复习顺序写的,难度严格不递增 dp不像数据结构可以套路性的将,以例题为主吧 part 1:树形dp 树是一种非常好的结构,其天然的递归形态保证了最优子结构,使得dp有很好的发挥空间 一般状态与子树和路径有关,也有时扯到叶子节点,所以不套路化,特殊情况可能会一大把 ......
OI

csps区间dp

加分二叉树 我们可以枚举中间这个 k 的位置,然后分别递归计算左右子树,这就让我们想到这是一个和区间有关的,我们可以用区间dp来解决。 \(f[i][j]\) 表示 i, j 这个区间的最大分值。用一个很板子的区间dp就可以解决了。 至于求前序遍历,我们也只需要通过递归然后枚举中间的根,第一个满足最 ......
区间 csps

csps 线性dp

合唱队形 正反分别求一遍最长上升子序列,然后枚举中间的最高点,计算出来队列里面的最多人,然后就可以知道需要出列的最少人。 过河 tips:两个互质的数字 p,q,他们所不能拼出来的最小的数字是 \((p-1)(q-1) - 1\)。 我们可以用 \(f[i]\) 表示经过长度 i 之间,我们所踩石头 ......
线性 csps

斜率优化学习笔记

下面可能会用到一些叫上凸壳鸭下凸壳呀的名词,大家不用弄懂它的概念的说也不用望风而逃(我之前就望风而逃过(*/ω\*)),凸壳就简单理解成一个凸了一块的一段连线就好了。 斜率优化有些地方不好用代数的语言刻画,比如下凸壳,比如凸包(凸包有的定义就直接写橡皮筋的比喻 233333),以及为什么下凸点/上凸 ......
斜率 笔记

斜率优化dp

斜率优化dp 【模板】任务安排 机器上有 n 个需要处理的任务,它们构成了一个序列。这些任务被标号为 1 到 n,因此序列的排列为 1 , 2 , 3 .... n。这 n 个任务被分成若干批,每批包含相邻的若干任务。从时刻 0 开始,这些任务被分批加工,第 i 个任务单独完成所需的时间是 T_i。 ......
斜率

【题解】CF1110D Jongmah(DP)

【题解】CF1110D Jongmah 代码很短,但是思路我怎么也想不到的神仙 DP。 题意概述 你在玩一个叫做 Jongmah 的游戏,你手上有 \(n\) 个麻将,每个麻将上有一个在 \(1\) 到 \(m\) 范围内的整数 \(a_i\)。 为了赢得游戏,你需要将这些麻将排列成一些三元组,每个 ......
题解 Jongmah 1110D 1110 CF

数位dp学习笔记

数位dp学习笔记 目录数位dp学习笔记数位dp定义:题型特征:dp设计:dp转移例题:BZOJ 3679 数位dp 定义: ...好像就是对数位进行dp,统计方案数。 题型特征: 通常会有10组左右的询问,每一次询问你较大(1e18左右)的区间内满足某个条件的数的数量。 dp设计: dp一般会有2到 ......
数位 笔记

[LeetCode] 2334. Subarray With Elements Greater Than Varying Threshold_Hard tag: dp, stack

You are given an integer array nums and an integer threshold. Find any subarray of nums of length k such that every element in the subarray is greater ......

斜率优化

其实我很早就学习了斜率优化,觉得这个东西比较套路化,写不写都可以。 今天看到不少网友对其十分热衷,我想还是动手写一篇。 P4655 [CEOI2017] Building Bridges 题意: 有 n 根柱子,第 i 根的高度是 a[i],你可以选择保留一些,其他的全被拆掉。 拆除第 i 根柱子的 ......
斜率

2023 ICPC 网络赛2 L Super-palindrome 字符串 border KMP dp

传送门 给出一个\(5000\)长的字符串 判断有多少个连续子串是超级回文的。 这里超级回文的定义是将字符串分成\(2k\)段每段按照回文对应相等。 设\(f_{l,r}\)表示区间\(l,r\)是否是符合要求的。引入\(border\)的定义:最长的前缀和后缀匹配长度。 容易想到我们如果暴力枚举每 ......

集睿致远/ASL国产DP/eDP转LVDS点屏方案芯片,CS5211设计资料

集睿致远/ASL推出的CS5211是一款可将eDP输入转换为LVDS信号的桥接芯片,CS5211内置LVDS发射机配备灵活的OpenLDI/SPWG位映射,能够驱动单端口或双端口(18/24位)LVDS面板。CS5211的LVDS输出可以配置为支持高达1920x1200分辨率,刷新率为60赫兹。此外 ......
芯片 国产 方案 资料 5211

P2602 [ZJOI2010] 数字计数&HDU 2089 (数位dp)

luogu HDU 最近在复习数位dp 数位dp,就是在一些计数问题的时候按照一位一位的顺序依次计算,通常可以采用记忆化搜索的方式 这两道题就是很典型的数位dp 数位dp通常要记录是不是顶着上限,有没有前导零,到了哪一位以及一些特殊的条件要求。 数位dp通常要把某个区间的问题转变成两个区间的差来方便 ......
数位 数字 P2602 2602 2010

dp动态规划

数位dp 离谱dp,常用于有位置与位置之间的限制并计数的问题中。通过记忆化搜索求出。 代码大致模板: const int N = 50; //数的最高位数,可以往大点开 int s[N], tot; int dp[N][2][2]; //状态可能还会多一些,大致与 Dfs 状态同步 inline i ......
动态

动态规划——矩阵优化DP 学习笔记

动态规划——矩阵优化DP 学习笔记 前置知识:矩阵、矩阵乘法。 矩阵乘法优化线性递推 斐波那契数列 在斐波那契数列当中,\(f_1 = f_2 = 1\),\(f_i = f_{i - 1} + f_{i - 2}\),求 \(f_n\)。 而分析式子可以知道,求 \(f_k\) 仅与 \(f_{k ......
矩阵 笔记 动态

动态规划——状压DP 学习笔记

动态规划——状压DP 学习笔记 引入 前置知识:位运算 动态规划的过程是随着阶段的增长,在每个状态维度上不断扩展的。 在任意时刻,已经求出最优解的状态与尚未求出最优解的状态在各维度上的分界点组成了 DP 扩展的“轮廓”。对于某些问题,我们需要在动态规划的“状态”中记录一个集合,保存这个“轮廓”的详细 ......
笔记 动态

动态规划——数位DP 学习笔记

动态规划——数位DP 学习笔记 定义 引入 数位 DP 往往都是这样的题型:给定一个区间 \([l, r]\),求这个区间中满足某种条件的数的总数。 简单的暴力代码如下: int ans = 0; for(int i = l; i <= r; ++i) if(check(i)) ++ans; 而当数 ......
数位 笔记 动态

DP 简介及基本知识

动态规划(Dynamic Programming, DP) 是一种将复杂的问题分解为简单子问题的方式来解决问题的方法。 动态规划中主要由两个部分组成:一为状态,二为转移。状态和转移就组成了一个有向的状态转移图。动态规划需要满足有拓扑序(当拓扑序不知道但有,可以考虑拓扑排序,找到拓扑序,或者记忆化搜索 ......
基本知识 简介 知识 DP

动态规划——区间DP 学习笔记

动态规划——区间DP 学习笔记 不含四边形不等式优化。 定义 线性动态规划的局限性在于,它只能顺推或倒退,而不能有子区间依赖的问题。 区间动态规划是线性动态规划的扩展,它将问题划分为若干个子区间,并通过定义状态和状态转移方程来求解每个子区间的最优解,最终得到整个区间的最优解。 区间动态规划常用于解决 ......
区间 笔记 动态

动态DP小记

前言 矩阵乘法优化DP,重链剖分。 涉及到的知识点是比较复杂的,但是比较重要。 这是猫锟在 WC2018 讲的黑科技,一般用来解决树上的带有点权(边权)修改操作的 DP 问题,为了普及,甚至 CSP2022-S T4 考到了此知识点。 做法 朴素DP 设 \(dp_{i,0}\) 表示不选 \(i\ ......
小记 动态

Codeforces463-E.Team Work-组合数、DP

Codeforces463-E.Team Work 题意:求 \[\sum_{i=1}^n \binom{n}{i} i^k \]其中\(1\leq n\leq 10^9\),\(1\leq k \leq 5000\)。 题解: 其实这个题\(k\)的数据范围就已经暗示了做法的复杂度——应该是要去考 ......
Codeforces Team Work 463

数位dp

d数位dp #include <iostream> #include <cstring> #include <algorithm> #include <string> #include <cmath> #include <vector> using namespace std; const int ......
数位

状压DP合集

目录2023百度之星初赛三 2023百度之星初赛三 ......

LCS(字符串dp)

题意 题目链接:https://atcoder.jp/contests/dp/tasks/dp_f 题意就是给两个字符串 s 和 t,然后问你他们两最长的公共子串。 思路 得到dp之后,再循环遍历一下,输出就行了 代码 #include<bits/stdc++.h> #include<iostrea ......
字符串 字符 LCS dp

树形DP

什么是树形DP 顾名思义,树形DP就是在某些题目中要求的树结构上使用DP的思想。 树是有n个节点,n-1条边的无向图,且是无环的,联通的,又因为是无向图,所以两个节点间存在着相互的联通关系,有时需要加以判断 当DP建立在依赖关系上时,就可以使用树形DP来解决问题。 树形DP模板 void dfs(u ......
树形

最大子树和(树形dp)

题意 题目链接:https://www.luogu.com.cn/problem/P1122 给一棵树,树上的每个节点都有一个值,然后你可以剪掉一些节点,问最后你能得到的最大的和。(因为有些节点的值为负数。) 思路 典型树形dp。跑一遍dfs就行。 从 1 开始搜,f[i] 代表以 i 为根节点往下 ......
树形

落基山脉(区间dp)

题意 题目链接:https://www.luogu.com.cn/problem/P9325 给一段山脉的高度,然后从中截取一段长度为 i 的区间,求最小不对称值。不对称值就是这段区间里,最左边的高度与最右边的高度的差值加上倒数第二和第二,……。然后输出区间长度从 1 到 n 的最小不对称值。 思路 ......
区间