dfs dp

【区间 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]; ......
线性

DFS 序

最近接触到一些 DFS 序的题,它可以用来解决一些关于子树的问题。 DFS 序本质就是一棵树在深度优先搜索时访问节点的顺序。比如有下面一棵树,其 DFS 序就是 $1 \; 2 \; 4 \; 7 \; 8 \; 5 \; 3 \; 6 \; 9$。 DFS 序有一个很重要的性质,以节点 $u$ 为 ......
DFS

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

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

深度优先搜索(DFS)

深度优先搜索(DFS) 我们以二叉树的遍历为例子。 先序遍历 遍历过程 访问根节点 先序遍历其左子树 先序遍历其右子树 中序序遍历 遍历过程 中序遍历其左子树 访问根节点 中序遍历其右子树 后序遍历 遍历过程 后序遍历其左子树 后序遍历其右子树 访问根节点 我们使用数组来模拟二叉数,使用代码实现如下 ......
深度 DFS

【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

dfs回溯算法,拨号

题目 电话号码的字母组合 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例 1: 输入:digits = "23" 输出:["ad","ae","af","bd","be"," ......
算法 dfs

数位dp—卡尔文锦标赛

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

DFS和BFS

DFS : acwing 842 递归搜索树 1 #include<iostream> 2 using namespace std; 3 4 const int N = 10; 5 int n; 6 int path[N]; 7 bool st[N]; 8 9 void dfs(int u) 10 ......
DFS BFS

棋盘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

To_Heart—总结——连通块 dp(抑或 连续块 dp)

简介 有一类问题,他们需要计算满足在序列上插入给定顺序的元素,其贡献/限制只与两旁的元素有关,但元素插入的位置是不一定的,所以会有代价的最值和方案数的统计。而对于这类问题,我们其实可以不关心每一次插入的具体位置在哪里,而只关注他的相对位置(比如在某个数左边、在某个数左边且与其相邻之类的),从而将状态 ......
To_Heart Heart To

CF1316D Nash Matrix(构造/dfs)

题目 第一次做构造题,做了两节晚自习 qwq 一开始我完全是正着想,首先 \(X\) 是显然的,但其他的点就不好做了, 然后我就想,可行的一般结论推不出,那就想反例,然后我想啊想......倒是想到了几个,比如说环与环之间不能有相交,环内外的点不能互相到达,跟本举不完,而且也不好实现,还是要想一般结 ......
Matrix 1316D 1316 Nash dfs

DFS

Oil Deposits 这道题的原题链接Online Judge 自行翻译 == == The GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvCom ......
DFS

DFS

Oil Deposits 这道题的原题链接Online Judge 自行翻译 == == The GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvCom ......
DFS

区间 DP、环形 DP

区间 DP 区间 DP 是可以由小区间的结果往两边扩展一位得到大区间的结果,或者由两个小区间的结果可以拼出大区间的结果的一类 DP 问题 往往设 \(dp[i][j]\) 表示处理完 \([i,j]\) 区间得到的答案,按长度从小到大转移 因此一般是先写一层循环从小到大枚举长度 \(len\),再写 ......
环形 区间 DP