dp

[ABC321G] Electric Circuit 状压DP

用到了好多技巧的状压DP 我们先统计总数然后除以m的阶乘就可以了 设f[i]表示状态为i的集合造成的贡献数(也就是状态为i的集合 不与集合外的点联通 且 这个集合联通块数是1 的情况数) 不与集合外的点联通的话只用考虑结合i之间连边,集合外那些点之间两边就可以啦 这个集合联通块数是1 就比较难处理了 ......
Electric Circuit 321G ABC 321

区间DP

区间DP 区间DP 题目描述 设有\(N\)堆石子排成一排,其编号为\(1,2,3,…,N\)。 每堆石子有一定的质量,可以用一个整数来描述,现在要将这\(N\)堆石子合并成为一堆。 每次只能合并相邻的两堆,合并的代价为这两堆石子的质量之和,合并后与这两堆石子相邻的石子将和新堆相邻,合并时由于选择的 ......
区间

经典dp

K-Box_2023牛客暑期多校训练营2 (nowcoder.com) #include<bits/stdc++.h> #define int long long using namespace std; typedef pair<int, int> PII; const int N = 1e6 + ......
经典

换根DP

换根DP 又称二次扫描。 特征: 树中没有指定根节点。 采用不同的节点作为根,答案可能不一样。 模板 P3478 [POI2008] STA-Station 暴力解法:枚举根节点,求以该节点作为根时,所有节点的深度之和,时间复杂度O(n^2) 优化:直接通过父节点的深度之和,得到子节点的深之和:子节 ......

【题目-任务安排2】斜率优化dp

题解 首先,递推关系如下: \(dp[i] = min(dp[i], dp[j] + sumt[i] * (sumc[i] - sumc[j]) + s * (sumc[n] - sumc[j]));\) 显然N太大,无法\(O(n^2)\)算法解决问题。考虑如何优化掉第二个j的循环,发现这个循环是 ......
斜率 题目 任务

dp问题

1.区间dp P1063 [NOIP2006 提高组] 能量项链 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 对于环形问题,我们常常可以采用将n个元素复制成2n个元素,或者选择(i + 1) % n的形式 第一次遇到区间dp,写个题解总结一下 区间dp能解决的问题就是通过小区间 ......
问题

Modbus 转 PROFIBUS DP 应用场景 PM-160

1)在网关PROFIBUS DP侧是一个PROFIBUSDP从站,在Modbus串口侧有Modbus主站、Modbus从站、通用模式可选:接口有RS232RS485、RS422三种可选。 2)通信方式为半双工:波特率有300~115200bps可选;有/无校验位、奇/偶校验和标记/空格可选。 3)网 ......
PROFIBUS 场景 Modbus 160 DP

区间dp

1.acwing 282石子合并问题 1 #include<bits/stdc++.h> 2 using namespace std; 3 4 int n; 5 const int N = 310; 6 int s[N]; 7 int f[N][N]; 8 9 int main () 10 { 11 ......
区间

【线段树优化 dp】AT_dp_w Intervals 题解

AT_dp_w 先不看数据范围,考虑 dp。 令 \(f_i\) 表示前 \(i\) 个字符且强制第 \(i\) 个字符为 \(1\) 的最大分数。 则 \(f_i = \max(f_{j - 1} +\sum\limits_{r_k\ge i\ge l_k\ge j}a_k)\)。 这个是一份 \ ......
线段 题解 Intervals AT_dp_w AT

【区间 dp】UVA1331 最大面积最小的三角剖分 Minimax Triangulation 题解

UVA1331 区间 dp。 有一个很经典的问题:给定一个凸多边形,求它的最优三角剖分,对每个三角形规定一个权函数 \(f(i,j,k)\),求所有剖分方案中最大的权值。 发现这个东西不好直接入手。但是这个东西与矩阵最优链乘是相似的。考虑区间 dp。因为随意的转移是难以维护的,维护区间信息就等于强制 ......
题解 区间 Triangulation 面积 Minimax

线性dp

1.数字三角形。acwing 898. 1 #include<bits/stdc++.h> 2 using namespace std; 3 4 const int N = 520,INF = 1e9; 5 int n; 6 int a[N][N]; //表示每一个点 7 int f[N][N]; ......
线性

NEFU OJ Problem 1489 青蛙赶路 题解【动态规划DP】

Problem:G Time Limit:2000ms Memory Limit:65535K Description 有一只青蛙,每秒选择走1米或跳m米,青蛙体力不足,所以不能连续两秒都在跳。 青蛙将移动到[l,r]之间,它想知道有多少种不同的方式来实现其目标。 两种方式是不同的,当且仅当它们移动 ......
题解 青蛙 Problem 动态 NEFU

【DP】Leetcode 322 Coin Change

题目链接 322. 零钱兑换 思路 代码 class Solution { public int coinChange(int[] coins, int amount) { int n = coins.length; if(n == 0){ return -1; } // dp[i] 表示目标金额为 ......
Leetcode Change Coin 322

P1064-DP【绿】

好多好多天前写了这道题的50分代码,然后不知道错在哪里反复调没调对。然后这周我极度忙,忙死了,好不容易有一点时间再来审视这道题了,然后我5分钟想明白了一切... 把DP数组定义的那句int DP[100][5000]改成int DP[100][50000]就直接AC了...此前的50代码错的5个点都 ......
1064 DP

500mA 线性锂电充电芯片 DP4054/DP4054H完全兼容替代TP4054

锂电池工作原理 锂电池是一种新型的可充电电池,其具有体积小、重量轻、容量大耐用性强等特点,因此被广泛应用于手机、笔记本电脑、移动电源等电了设备上。 充电原理是指电池在充电过程中,用电流将锂离子从外部电源输入电池,使其形成 一个电荷差,实现充电。 锂电池充电原理是采用化学反应,将外部电源的电能转变成化 ......
4054 线性 芯片 DP 500

数位dp—卡尔文锦标赛

[CEOI2015 Day1] 卡尔文球锦标赛 题目描述 译自 CEOI2015 Day1 T2「Calvinball championship」 一场卡尔文球比赛会有 $n$ 名选手参与,他们的编号分别为 $1\dots n$,分为若干个非空的球队。我们规定球队之间按照每个球队编号最小的选手的编号 ......
锦标赛 数位 锦标

棋盘DP

主要是在棋盘上的DP,棋盘上每个点的转移状态基本上都是已知的 //https://www.luogu.com.cn/problem/P1004 //首先提供二维dp,二维dp的思路为ij表示i行j列时的可以取得最大值 //类似于贪心,先进行第一遍循环,取到最优,然后把第一遍取的数全变为0,再进行第二 ......
棋盘

浅谈斜率优化DP

前言 考试 T2 出题人放了个树上斜率优化 DP,直接被同校 OIER 吊起来锤。 离 NOIP 还有不到一周,赶紧学一点。 引入 斜率 斜率,数学、几何学名词,是表示一条直线(或曲线的切线)关于(横)坐标轴倾斜程度的量。它通常用直线(或曲线的切线)与(横)坐标轴夹角的正切,或两点的纵坐标之差与横坐 ......
斜率

DP4301-M无线模块一款SUB-1G无线收发模块无线抄表智能家居手持设备

DP4301-M无线模块是一款低成本高效率工作于1GHz以内的收发模块,支持中国智能电无线 集抄标准470MHz~ 510MHz,兼容433MHz ISM/SRD频段均可使用。 此模块且前已经超大量应用于国标智能无线抄表及物联网自组网等双向数据传输系统方案,模块具备的低功耗、高接收灵敏度、高发射功率 ......
无线 模块 抄表 智能家居 智能

P1077-DP【黄】

昨天好几道题没做出来很郁闷,结果今天上来半小时不到就直接做出一道黄DP题了,不错,又有写题的冲动了。 这道题我一直被那个“因为方案数可能很多,请输出方案数对 1000007取模的结果。”这句话吓到了,因为我在想如果涉及求最优方案,那么势必会有比较,那么既然取了摸还怎么比较啊?不会另要开一个数组记录每 ......
1077 DP

区间DP

一.定义 即对于一个区间进行的dp 二.经典转移方程 1.枚举断点型 f[l][r]=min(f[l][k-1],f[k][r]) (l+1<=k<=r) 2.左右端点型 f[l][r]=min(f[l][r-1],f[l+1][r]) 3.有一定条件型 f[l][r][k]=f[l][r-1][k ......
区间

树形DP

一.定义 树形dp,顾名思义,即为树上的DP。 二.分类 1.普通树形dp 2.换根dp 三.一些常用技巧及思想 1.补集转化思想:就是数学常用的“正难则反”。 例:一棵树,每个点有权值,要求选一个连通块,此连通块包含最大权值的方案数。 解:将包含最大权值的连通块个数转化为所有连通块个数减去不包含最 ......
树形

斜率优化DP

使用场景 状态 \(O(n)\),转移 \(O(n)\),只涉及 \(i,j\) 两个未知量,\(j\) 的取值范围的左、右端单调,可以把 \(f_i\) 当做截距维护上(max)、下(min)凸包。需要注意的是,它作用不仅仅可以优化 DP,本质是求某些最值,\(\color{red}\text{e ......
斜率

树上动态DP状态设计及实现细节

状态设计 由于具有更改操作,我们希望更改后会变的东西可以简单的通过线段树上单点修改来维护。 对于一般的常数层转移 DP,这一点较好处理。但是对于树上 DP,就需要结合重儿子进行设计另一个 \(g\) 数组,表示不含重儿子的 DP 值,就可以结合树剖快速计算。 如这道,各点有不同代价,可覆盖子树所有叶 ......
细节 状态 动态

G - Cut and Reorder 状压DP

我是链接 一眼状压DP,选出一些a从前往后塞,f[i][j]表示选出的a状态为i,且结尾为j时最小花费 转移就看上一个状态结尾和当前结尾在a里的下标是否顺着挨着,不是顺着挨着就要加个c 这样会tle #include<bits/stdc++.h> #define int long long usin ......
Reorder Cut and

little bird —单调队列优化dp

对于这道题可以很容易写出状态转移方程。但直接转移会超时,所以需要单调队列优化。这里的单调队列采取左闭右开写法,容易理解。 怎么做呢?常规取出队头决策就不多说了。怎么判断当前决策是否更优呢?当状态较优秀且树高比较高,就可以考虑去掉尾巴。 代码: #include <bits/stdc++.h> #de ......
队列 little bird

DP做题记录

蒟蒻DP太菜了QAQ。 一点体会:DP就是如何通过最少的信息确定最优解。 P5664 [CSP-S2019] Emiya 家今天的饭 思考了一下,发现第3个要求很难直接搞,于是考虑正难则反,用总方案数减去不符合要求的方案数。求总方案数: \(g_{i,j}\) 表示在前 \(i\) 行中选 \(j\ ......

P3842-DP【黄】

想搜索到最后一层,就必得先完成前面层的搜索任务,这构成了对状态转移的启示,即当前层的DP值应该是此前层转移过来后得到的最佳值。 但这道题看数据范围应该不能用二维数组,抱着侥幸的心理我使用了动态二维数组,dpij表示以第i层第j个为终点时的答案,结果MLE了,喜提42分,详见CODE-1。 后来意识到 ......
3842 DP

状态机模型DP

//http://ybt.ssoier.cn:8088/problem_show.php?pid=1302 #include<bits/stdc++.h> using namespace std; const int N=2e5+10; int dp[N][3][3],n,w[N],t; int m ......
模型 状态

[题解] AT_dp_w Intervals

Intervals 有 \(m\) 条形如 \((l, r, a)\) 的限制,表示如果 \(s_{[l, r]}\) 中有 1 就会有 \(a\) 的价值。 你要求长度为 \(n\) 的 01 串的价值的最大值。 \(n, m \le 2 \times 10^5\)。 将每个限制挂到右端点上,在右 ......
题解 Intervals AT_dp_w AT dp