直径meeting dp

subsequence1 (牛客多校) (2个串比大小, DP, 组合数)

题面大意: 给定2个字符串,问有多少个子字符串S, 是大于t的 思路 数据范围很小, 因此考虑n^2做法 分2步, 位数s>位数t 的时候 然后 位数相等的时候 利用DP ,处理, 分别就是枚举 前 k个数和s相同,然后k+1个数比t大就可以. 具体思路自己想想,和那个比较像 const int M ......
subsequence1 subsequence 大小 DP

23-05-20 总结 Meeting rooms 系列3个题目

## 题目列表: - P1. 【easy,会员】[Meeting Rooms - LeetCode](https://leetcode.com/problems/meeting-rooms/) - P2. 【Mid,会员】[Meeting Rooms II - LeetCode](https://l ......
题目 Meeting rooms 23 05

线性dp

# [P2285 [HNOI2004]打鼹鼠](https://www.luogu.com.cn/problem/P2285) > 这道题目类似最长上升子序列 这是一道线性dp的题目 怎么设置状态呢? f[i]:表示最后一只鼹鼠选择i的最大值 转移:f[i] = max(f[i], f[j] + 1 ......
线性

区间dp

ICPC Beijing 2017 J, Pangu and Stones http://oj.daimayuan.top/course/8/problem/327 题意:有n堆石子,需要合并成一堆,但每次合并必须合并>=L且<=R堆,代价为总和,求最小代价。(n<=100) 题解:经典的石子合并是 ......
区间

有向图 dp

1.1 什么是有向图 dp 我们遇到的博弈问题,例如【省选联考 2023】过河卒,很多都是转化为有向图博弈,其形如:一些节点为终止节点,状态已经确定;一个点的状态由其出边所到达点的状态确定。 如果是 DAG 上,显然我们可以按照拓扑序让每个点搜索到的时候其所有出边都已经确定了状态。但是题目有时候并不 ......
有向图 dp

hdu:不要62(数位DP)

Problem Description 杭州人称那些傻乎乎粘嗒嗒的人为62(音:laoer)。 杭州交通管理局经常会扩充一些的士车牌照,新近出来一个好消息,以后上牌照,不再含有不吉利的数字了,这样一来,就可以消除个别的士司机和乘客的心理障碍,更安全地服务大众。 不吉利的数字为所有含有4或62的号码。 ......
数位 hdu

背包DP

背包问题是指把一定数量的物体放在一定容量的背包中,物品通常有价值和体积两种属性,求能装下背包的最大价值。 01背包 每个物体只有取与不取两种状态,对应二进制的0和1,故被称为01背包。 状态转移方程 若已知第$i$个物品的价值为$w_i$,体积为$v_i$,设$dp_{i,j}$为前$i$个物品,容 ......
背包

5.8 单调栈 & 悬线法 & 相关的题(和 dp 也多少沾点)

今日小题:一个 CF div2 的 A 的签到题,记录一下这个做法: 求一个字符串的最长非回文字符串:无解:长度为 1 或整个串每个字符都一样;有解:判断这个串是不是回文,如果不是,输出长度,如果是输出长度 - 1。感觉非常妙。不写证明,感觉非常好想... #include<bits/stdc++. ......
amp 5.8 dp

CF213C (棋盘dp的经典例题)

Relay Race - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 本题是棋盘dp的经典例题。 可以先转化一下题意:从(1,1)走两条路径到(n,n),再确保两人是同步行走的。 我们可以让一人的走路范围一直在左下方向,一人的走路范围一直在右上方向。(倘若两人的路径交叉,则都可以转 ......
例题 棋盘 经典 213C 213

PROFIBUS DP网关在化工行业的应用

PROFIBUS DP网关在化工行业的应用 一、前言 MODBUS TCP协议以其组网方便灵活、技术成熟、数据量及速度指标优越、协议开放等优势,在工厂级设备联网中被广泛采用,也是化工行业主流DCS厂家,如霍尼韦尔、恒河等支持的协议。而生产现场的电气设备(如控制风机、阀门、泵类的变频器和马达保护器)不 ......
化工行业 网关 PROFIBUS 化工 行业

【DP滚动数组空间优化】NO.1143. 最长公共子序列 NO.718. 最长重复子数组 NO.1035. 不相交的线

5 1143. 最长公共子序列 给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 0 。 一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符 ......
数组 序列 NO 空间 1143

【学习笔记】【题解】树形依赖 DP 选做

地址:https://www.cnblogs.com/FReQuenter5156/p/shuxingyilaidp.html/ 简介 这类背包本质上是分组背包问题。 将一个节点的每一棵子树看作一组,进行分组背包。所谓分组背包,即在选择物品的时候,一开始将物品分为好几组,在选择时,可以从每一组中至多 ......
树形 题解 笔记 DP

2023-05-04 线性DP_力扣练习

线性DP的力扣题目练习 这一章将会介绍线性动态规划的相关概念和经典问题,并给出一些练习题供大家演练。 用动态规划解决问题的过程有以下几个关键点:状态定义,状态的转移,初始化和边界条件。 状态定义 就是定义子问题,如何表示目标规模的问题和更小规模的问题。例如常见的方法:定义状态 dp[n],表示规模为 ......
线性 2023 05 04 DP

学习笔记:数位dp

1.基本模型 数位dp,即以数的每一位作为状态进行dp的算法。通常状态为 $f_{i,0-9}$ 表示第 $i$ 为取 $0-9$ 时的dp值。通常时间复杂度为 $log_{10}n$ ,十分优秀。 2.套路 求区间合法类的题,使用容斥思想思想求解,即 $[1,r]-[1,l-1]$ dp式子一般很 ......
数位 笔记

CF708C Centroids(换根dp)

题意: 给定一颗树,你有一次将树改造的机会,改造的意思是删去一条边,再加入一条边,保证改造后还是一棵树。 请问有多少点可以通过改造,成为这颗树的重心?(如果以某个点为根,每个子树的大小都不大于$\dfrac{n}{2}$,则称某个点为重心) 思路: 是今天遇到的一道有意思的换根dp呃呃。 从题意来看 ......
Centroids 708C 708 CF

2023-05-03 线性模型与区间DP

线性模型与区间DP 1 线性模型 基本概念 这里的线性是指状态的排布是线性的 线性模型是动态规划中最常用的模型 一般的代码模型是: for(int i = 0; i < n; i++) { for(j = 0; j < i; j++) { // Todo: 更新dp的具体逻辑 } } 最典型的一个例 ......
区间 线性 模型 2023 05

DP 好题题单整理

可能会持续更新,但是可能会被我放着不管。 | 题目 | | | | | | 对最长不下降子序列模型的理解 | 对最长不下降子序列模型的理解 | | 一道状压好题 | 一道状压好题 | | 一道重点不在于dp的思维题 | 一道重点不在于 $dp$ 的思维题 | | NOIP2015的dp傻题 | $\ ......
DP

动态 dp

这两天疯狂学东西,不管是有用算法还是无用算法。大概是真的打不动模拟赛了,也不想做题。 今天模拟赛 T1 计算几何 T2 构造 + 计算几何 T3 手玩十组样例。很好奇出题人是不是玩了若干时间原神之后整出这种阴间活来。 动态 dp 这种东西一般是把一个很显然的树形 dp 给你挂个带修。当然也可能是不显 ......
动态 dp

Educational DP Contest

Educational DP Contest ATcoder_link 夯实基础的好东西 I 记录一下此时第 i 个有多少概率小于等于 j 的就可以了。 #include<bits/stdc++.h> using namespace std; const int N=3005; #define db ......
Educational Contest DP

【dp的二分优化】NO300 最长递增子序列

【dp的二分优化】300. 最长递增子序列 给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。 示例 1: 输入:nums ......
序列 300 NO

常见dp问题

dp的引入 动态规划(简称dp), 是指把一个问题分解为若干个子问题, 通过局部最优解得到全局最优的一种算法策略或者说一种思想方法. 简单来讲, 就是用一个数组表示我们要求的问题的答案, 如果知道前一个问题的答案, 就可以推出后一个问题的答案 dp有以下几个常见的概念: 状态: 指当前所考虑的子问题 ......
常见 问题

计数dp

CODE FESTIVAL 2016 Final $n,m$ 很小,可以设很暴力的状态 发现我每次就是一条路径然后回到 $1$ 所在的强连通分量,不关心我现在在哪个点,所以设 $f_{i,j,k}$ 表示现在走了 $i$ 步, $1$ 所在的强连通分量里面有 $j$ 个点,现在走了 $k$ 个点还没 ......

Codeforces 1804H - Code Lock(状压 dp)

对于一种排列方案,答案显然等于相邻字符在环上对应的劣弧长度之和。 然后其实你可能会想到很多状压 / 折半搜索方法,包括但不限于枚举一半的信息然后折半搜后一半,但稍加思考会发现这些方案都避不开记录元素之间的相对顺序,而但凡涉及到这一点,复杂度都是阶乘起步。因此我们只能另辟蹊径。 考虑 $k$ 是偶数的 ......
Codeforces 1804H 1804 Code Lock

Codeforces 1799H - Tree Cutting(树形 dp)

思考的时候一直卡在不会在低于 $O(n)$ 的时间内储存一个连通块的 $siz$ 有关的信息,看了洛谷题解之后才发现我真是个小丑。 树形 DP。对于一条我们需要操作的边 $(i,fa_i)$,我们将其分为保留子树和删除子树两种类型,对于删除子树,我们在判定其是否合法时候改为判定删除的连通块大小是否为 ......
树形 Codeforces Cutting 1799H 1799

区间dp 和 树型dp

##区间dp 递推方程是以区间的形式给出 一般套路 :枚举区间长度 区间端点 区间分界点 然后就是想怎么去对这个区间进行一定的操作 从最原始的地方开始一步步推导方程! for(i=1;i<n;i++)//区间长度为1 { for(j=1;j<=n-i;j++) //区间开头 { for(k=j;k< ......
区间

【树形DP入门题】NO337 打家劫舍III

【树形DP入门题】337. 打家劫舍 III 小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为 root 。 除了 root 之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。 如果 两个直接相连的房子在同一天 ......
打家劫舍 树形 337 III NO

旅游规划 树形DP DFS

🍑 算法题解专栏 🍑 旅游计划 输入 10 0 1 0 2 0 4 0 6 0 7 1 3 2 5 4 8 6 9 输出 0 1 2 3 4 5 6 8 9 🍑 树形DP:即在树上进行的 DP,由于树固有的递归性质,树形DP一般都是递归进行的。 🍑 树的直径:找到根节点下面的第一长和第二长的 ......
旅游规划 树形 DFS

CF1814E Chain Chips & CF750E New Year and Old Subsequence - 动态 dp -

一句话概括动态 dp:用来解决带修改/多次区间询问的 dp 问题。将转移写成矩阵的形式,然后利用线段树求解区间问题/单点修改 1814E 注意一条边要么选 2 要么选 0 次,而且第一条边一定是选了 2 次。如果有一条边没选,那么这条边两侧的边一定都选了。 设 $f_i$ 代表考虑到第 $i$ 条边 ......
Subsequence 动态 1814E Chain Chips

6669: 括号配对 区间dp

描述 Hecy 又接了个新任务:BE 处理。BE 中有一类被称为 GBE。 以下是 GBE 的定义: 空表达式是 GBE 如果表达式 A 是 GBE,则 [A] 与 (A) 都是 GBE 如果 A 与 B 都是 GBE,那么 AB 是 GBE。 输入 输入仅一行,为字符串 BE。 对于 100% 的 ......
括号 区间 6669

换根 DP 板子

以前一直以为这玩意是随机应变的。 结果还真能总结出板子。 当然也有一定的局限性,比如 $dp$ 值必须 $O(1)$ 算。但不影响正常使用。 ins:向 $k$ 的子树信息中插入/删除 $nx$ 的子树信息。 这里的 子树 在 dfs1 中是指以 $1$ 为根的子树;dfs2 中是指以 $k$ 为根 ......
板子 DP