dfs dp

牛客题解-mixup2混乱的奶牛(状压dp)

# 题解-mixup2混乱的奶牛 [原题连接]([1026-mixup2混乱的奶牛_2021秋季算法入门班第八章习题:动态规划2 (nowcoder.com)](https://ac.nowcoder.com/acm/contest/25022/1026)) ## 题目描述 ``` 混乱的奶牛 [D ......
题解 奶牛 mixup2 mixup dp

关于dp部分的思考

# dp部分小结 ## 背包 背包主要是模型的构建。 ### 01背包 选与不选,且只能选一个。 ```cpp for(int i=1;i=w[i];j--) dp[j]=max(dp[j],dp[j-w[i]]+v[i]); } ``` ### 完全背包 选与不选,可任意选。 ```cpp for ......
部分

【杂题乱写】6 月西安多校 DP 专题训练

这也太难了!这也太难了!这也太难了! # A [UOJ-607 UR#20 跳蚤电话](https://uoj.ac/problem/607) 加点操作太抽象,改成删点,每次可以删一个叶子,或者删一个只有一个父亲和一个儿子的节点。 算方案还带顺序,子树间再算多重集组合数不方便,不如直接算任意顺序删点 ......
专题 DP

CF708C Centroids 换根dp

CF708C Centroids 一道换根 DP。 我们可以先找出树的一个重心,那么对于其他所有不是重心的点,它不能成为重心时因为它父亲的那一支节点数大于一半,而可以改造成功,则意味着可以在他父亲那一支里,可以找到子树u,使 $siz[u] \le n/2 && siz[fa]-siz[u] \le ......
Centroids 708C 708 CF

图的遍历——DFS, BFS(邻接矩阵,邻接表)——C语言描述

# 图的遍历——DFS, BFS(邻接矩阵,邻接表)——C语言描述 [toc] # 0 测试用例框架 [https://blog.csdn.net/m0_59469991/article/details/127137119?csdn_share_tail=%7B%22type%22%3A%22blo ......
矩阵 语言 DFS BFS

狂刷DP

**不行啊都开始卷了,补一下弱项** ## P5020 [货币系统](https://www.luogu.com.cn/problem/P5020) 个人认为题面写复杂了,真没啥必要。。。 很明显的背包问题。 设 $dp_i$ 为面值为 $i$ 的钱最多需要多少张货币来表示。 那么就直接跑背包就行了 ......

UVA12222 Mountain Road 山路 题解 dp

UVA12222 山路 题意: - - 一个山路只有一条车道,因此不能有两辆方向相反的车同时在车道内。同时,为了保证安全,车道内不能超车,且同向行驶的车间距必须大于10分钟。现在给你n辆车,三个参数依次表示行驶方向,到达时刻,行驶时间。问如何安排能使最后一个通过的车通过时的时刻最小,输出这个值。 分 ......
题解 山路 Mountain 12222 Road

abc054d <dp, 背包>

https://atcoder.jp/contests/abc054/tasks/abc054_d ``` // https://atcoder.jp/contests/abc054/tasks/abc054_d // 背包 // 这里开始的时候数据规模想错了, 所以用了map, 实际上可以用数组 ......
背包 054d abc 054 lt

背包DP-贪心-1262. 可被三整除的最大和

# [1262\. 可被三整除的最大和](https://leetcode.cn/problems/greatest-sum-divisible-by-three/) ## Description Difficulty: **1762** Related Topics: [贪心](https://l ......
背包 1262 DP

基环树dp

应用: 遇到每一个点 只会有一个方向作用到其他点, 这样产生的图形就是 一个 基环树深林 通常解决方法: 利用树形dp把除去环的值更新出来, 然后在对这个环经行处理即可 模板题: 一共有 � 个岛,每个岛都有一条出边,且该图是无向图,因为桥是可以双向行走的。给定桥的长度,即两点之间的边权。同时每对岛 ......

题解:【AT Educational DP Contest-O】 Matching

[题目链接](https://www.luogu.com.cn/problem/AT_dp_o) 来点位运算优化,目前也是拿下了洛谷最优解,比第二名快一倍: ```cpp #include #define int long long #define btp(x) __builtin_popcount ......

背包DP-6447. 给墙壁刷油漆

# [6447\. 给墙壁刷油漆](https://leetcode.cn/problems/painting-the-walls/description/) ## Description Difficulty: **困难** Related Topics: 给你两个长度为 `n` 下标从 **0* ......
墙壁 油漆 背包 6447 DP

关于DFS

### 概述 所谓深度优先搜索(以下称为dfs,depth first search),这个高尚的名字,它是什么呢? 我认为,他是一种借助计算机计算能力的枚举。 >是一种选优搜索法,又称为试探法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择, ......
DFS

同类型,类背包动态规划,选地dp

弱化版:黑虎阿福: 题目描述 阿福是一名经验丰富的大盗。趁着月黑风高,阿福打算今晚洗劫一条街上的店铺。 这条街上一共有 NNN 家店铺,每家店中都有一些现金。阿福事先调查得知,只有当他同时洗劫了两家相邻的店铺时,街上的报警系统才会启动,然后警察就会蜂拥而至。 作为一向谨慎作案的大盗,阿福不愿意冒着被 ......
背包 类型 动态

数位DP?记忆化罢了!

我看了半天的数位 DP,DP 没学会,人倒是麻了。 # 解决什么 一般用于求解给你一个区间 $[l,r]$,问你其中满足条件的数有多少个。 这种题目还是蛮常见的,我们一般情况下暴力只能拿一少部分分,之前我看着那个 $n\le 10^{18}$ 是一脸懵逼,这东西 $O(n)$ 都过不去,啥高级的东西 ......
数位 罢了 记忆

斜率优化dp 学习笔记

# 斜率优化dp ## 引入 首先,我们考虑一种更简单的dp优化——单调队列优化。 比如,一个dp式形如: $$dp_{i} = \min_{k \leq j \leq i} (dp_j+f_j+g_i)$$ 我们发现,这个式子可以通过拆分(wgj:分离变量),变形成如下式子: $$dp_{i} = ......
斜率 笔记

Edgy Trees(dfs,并查集,快速幂,树形结构,红黑树)

Edgy Trees time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output You are given a tree (a conne ......
树形 结构 Trees Edgy dfs

Longest Path (牛客多校) (换根DP+斜率优化)

换根dp: 第一次dfs 处理儿子点的权值 第二次dfs 处理 父亲点,和兄弟节点的权值 处理兄弟节点的时候, 利用父亲节点统一处理, 利用stl存储 斜率优化: 为什么会用到斜率优化: 在遇到转移式子是 fi x fj 的时候, 不是分开的, (分开的,直接用单调队列处理) (通常会遇到平方式子) ......
斜率 Longest Path DP

Removal (牛客多校) (DP)

题目大意: 给定一个序列, 移除m个字母后, 问可以形成多少个不同的序列 思路: 正常想法: dp[i][j], 到第i个时, 移除m个后,有多少个不同的字符串 转移: dp i j-1 (移除自己) (注意题目问的是移除后,有多少个不同的子串, 此时移除自己时, 会有重复的情况) dp i-1 j ......
Removal DP

DFS 和 DP 的用法区别

DFS进行分块递归的时候,注意各个子空间是否有重叠部分,如果有,最好改为DP(防止重复计算) dfs(d, n) { dfs(l, n); dfs(r, n); } 检查 l 和 r 是否有重叠部分 ......
DFS DP

单调队列优化DP

# 单调队列优化DP 单调栈和单调队列都是借助单调性,及时排除不可能的决策,保持候选集合的高度有效性和秩序性。单调队列尤其适合优化决策取值范围的上、下界均单调变化,每个决策在候选集合中插入或删除至多一侧的问题。 利用单调队列,我们可以舍去许多无用的状态,来更快的找出最优解。 ### [最大子序和]( ......
队列

数位 DP

引入 数位是指把一个数字按照个、十、百、千、万等等一位一位地拆开,关注它每一位上的数字。如果拆的是十进制数,那么每一位数字都是 $0\sim 9$。 数位 DP 一般是用来解决一类特定问题,以 1012. Numbers With Repeated Digits (Hard) 为例,这一类问题的特征 ......
数位 DP

数位 DP

引入 数位是指把一个数字按照个、十、百、千、万等等一位一位地拆开,关注它每一位上的数字。如果拆的是十进制数,那么每一位数字都是 $0\sim 9$。 数位 DP 一般是用来解决一类特定问题,以 1012. Numbers With Repeated Digits (Hard) 为例,这一类问题的特征 ......
数位 DP

eDP1.4a/DP1.4 转 GMSL2 方案

GMSL2 点屏及老化,应用于车载中控及仪表屏 ......
方案 GMSL2 eDP1 GMSL eDP

papamelon 344. 奶牛展览 Cow Exhibition(挑战程序设计竞赛) dp

地址 https://www.papamelon.com/problem/344 ``` 贝西有权选择让哪些奶牛参加展览。 由于负的智商或情商会造成负面效果,所以贝西不希望出展奶牛的智商之和小于零,或情商之和小于零。 满足这两个条件下,她希望出展奶牛的智商与情商之和越大越好,请帮助贝西求出这个最大值 ......

概率期望DP做题记录-Part3

# 概率期望DP做题记录-Part3 ## [P3750 [六省联考 2017] 分手是祝愿](https://www.luogu.com.cn/problem/P3750) ~~什么题目名称~~ ### 题意 给定 $n$ 个灯的初始状态,每个灯有两个状态亮和灭,通过操作第 $i$ 个开关,所有编 ......
概率 Part3 Part

矩阵乘法与动态 DP 入门

## 矩阵乘法及广义矩阵乘法 前置知识:矩阵相关基础概念。 记 $A(i, j)$ 表示矩阵 $A$ 的第 $i$ 行第 $j$ 列, $n_A$ 为 $A$ 的行数, $m_A$ 为 $A$ 的列数。 定义矩阵加法 $A+B$ 为( $n_A=n_B,m_A=m_B$): $$\ \ \ \ \ ......
乘法 矩阵 动态 DP

[CTSC1997] 选课(树状DP)

刚接触树状DP,好难啊QAQ [CTSC1997] 选课 题目描述 在大学里每个学生,为了达到一定的学分,必须从很多课程里选择一些课程来学习,在课程里有些课程必须在某些课程之前学习,如高等数学总是在其它课程之前学习。现在有 N 门功课,每门课有个学分,每门课有一门或没有直接先修课(若课程 a 是课程 ......
CTSC 1997 DP

「学习笔记」DP 学习笔记1

## 序列 DP > 一般序列 DP 核心思想:将序列的前 $i$ 个数的状态用一个更简单的形式表示出,并且体现出这些状态对后续的影响。 ### 题目 > ### ABC 267D > 给定一个序列 $a$,找到一个长度为 $m$ 的子序列 $b$,使得 $\sum b_i × i$ 最大。 $n, ......
笔记

LeetCode----二维网格DFS

# 1 算法模板 ``` void dfs(int[][] grid, int r, int c) { // 判断 base case // 如果坐标 (r, c) 超出了网格范围,直接返回 if (!inArea(grid, r, c)) { return; } // 访问上、下、左、右四个相邻结 ......
网格 LeetCode DFS