dfs dp

405 最长公共子序列 线性DP

视频链接:https://www.bilibili.com/video/BV1EK411K7Eb/ #include <iostream> #include <cstring> #include <algorithm> using namespace std; const int N=1010; i ......
线性 序列 405

403 最长上升子序列 线性DP

视频链接:https://www.bilibili.com/video/BV1KK4y1e7t7/ #include <iostream> #include <cstring> #include <algorithm> using namespace std; const int N=1010; i ......
线性 序列 403

Leetcode(剑指offer专项训练)——DFS/BFS专项(2)

课程顺序 题目 现在总共有 numCourses 门课需要选,记为 0 到 numCourses-1。 给定一个数组 prerequisites ,它的每一个元素 prerequisites[i] 表示两门课程之间的先修顺序。 例如 prerequisites[i] = [ai, bi] 表示想要学 ......
专项 Leetcode offer DFS BFS

Leetcode(剑指offer专项训练)——DP专项(8)

最长递增路径 题目 给定一个 m x n 整数矩阵 matrix ,找出其中 最长递增路径 的长度。 对于每个单元格,你可以往上,下,左,右四个方向移动。 不能 在 对角线 方向上移动或移动到 边界外(即不允许环绕)。 链接 DP 但是依旧不能覆盖所有的情况 class Solution { pub ......
专项 Leetcode offer

换根dp

给定一棵树,树中包含 nn 个结点(编号11~nn)和 n−1n−1 条无向边,每条边都有一个权值。 请你在树中找到一个点,使得该点到树中其他结点的最远距离最近。 输入格式 第一行包含整数 nn。 接下来 n−1n−1 行,每行包含三个整数 ai,bi,ciai,bi,ci,表示点 aiai 和 b ......

「学习笔记」数位 DP

「学习笔记」数位 DP 意义不大的题不写了。 点击查看目录 概述 数位 DP 一般用来解决「在一个较大的区间内统计具有一定特征的数的数量」的问题。 数位 DP 一般有两种做法: 递推法:首先需要预处理出具有一定条件的数的个数,然后将上限按数位拆分开来考虑贡献。 暴搜法:直接记忆化搜索具有特定条件的数 ......
数位 笔记 DP

LeetCode 双周赛 101,DP/中心位贪心/裴蜀定理/Dijkstra/最小环

本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 提问。 大家好,我是小彭。 这周比较忙,上周末的双周赛题解现在才更新,虽迟但到哈。上周末这场是 LeetCode 第 101 场双周赛,整体有点难度,第 3 题似乎比第 4 题还难一些。 周赛大纲 2605. 从两个 ......
定理 LeetCode Dijkstra 101 DP

20230401数位DP

数位DP 数位DP通常指在$[l,r]$区间中有多少个满足条件$k$的个树 常见的数据范围都很大 也就是说, 把数字的枚举,变成数字的构造 不要把数字看作是$10^{18}$ 而把数字看作是$18$位数的填数过程 就是把原本枚举的问题转化为了构造的问题 然而数位dp常通过记忆化搜索实现 tips: ......
数位 20230401

HJ67_24点游戏算法_多维递归_DFS(深度优先搜索)

思路: 多维递归,深度有限遍历加减乘除四种情况。 知识点: 1、多维递归不能对传递的变量进行修改,否则无法回溯。 应该传递一个新地址的变量,如代码所示,传递切片的列表,不修改列表 2、搜索遗漏。两括号比如((9-4)-1)*6 选取任意一个数作为第一个运算数与24运算,不能找出所有24点的计算方法。 ......
算法 深度 DFS HJ 67

Leetcode(剑指offer专项训练)——DFS/BFS专项(1)

计算除法 题目 给定一个变量对数组 equations 和一个实数值数组 values 作为已知条件,其中 equations[i] = [Ai, Bi] 和 values[i] 共同表示等式 Ai / Bi = values[i] 。每个 Ai 或 Bi 是一个表示单个变量的字符串。 另有一些以数 ......
专项 Leetcode offer DFS BFS

数位 dp

数位 $\text{dp}$ 前言 谨慎学习此算法。 算法讲解 AcWing 1081.度的数量 题意分析:你看到这道题,是不是无从下手?其实题目就是让我们求在 $x \sim y$ 中,有多少个数分解成 $B$ 进制后仅有 $k$ 位为 $1$,其余均为 $0$; 考虑暴力:从 $x$ 枚举到 $ ......
数位 dp

石子合并 - 区间 DP

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

蒙德里安的梦想 - 状压 DP

蒙德里安的梦想 - 状态压缩动态规划 题意 求把 $N \times M$ 的棋盘分割成若干个 $1 \times 2$ 的长方形,有多少种方案。 样例输入 2 4 样例输出 5 算法 状态压缩动态规划 (状压DP) $\to$ OI-WIKI 状态压缩,顾名思义,就是将某一种状态压缩成容易储存的形 ......
梦想 DP

DP

1. 最大的和 来源《信息学奥赛一本通》 原题链接 题目描述 对于给定的整数序列 $A=\lbrace a_1,a_2,…,a_n \rbrace$,找出两个不重合连续子段,使得两子段中所有数字的和最大。 我们如下定义函数 $d(A)$: $$d(A) = max_{1≤s_1≤t_1<s_2≤t_ ......
DP

合成大西瓜 (期望DP,消元) (2023年“华为”杯广东工业大学第十七届程序设计竞赛)

思路: 离目标越进吗,那个期望值越小,所以就 f=f1+f2+f3..... ......

树形dp

https://atcoder.jp/contests/abc259/tasks/abc259_f 树形dp(最简单的那种类型,但是题目的方法还是很巧妙的) 易知:负权边可以忽略 思路 定义 定义f[i][0]表示以i为根的子树尽量用到d[i]-1条边的最大可能(留一条边给父节点联通用) f[i][ ......
树形

数位dp

#数位dp ##思想 一般来说,题目是要求在区间$[l,r]$中符合某一种条件的数的个数 我们用前缀和的思想考虑,分别求出$[1,r]$和$[1,l-1]$中数的个数相减即为所求 这里采用记忆化搜索的方式实现 ##模板 #include<iostream> #include<cstring> #in ......
数位

【容斥、状压dp】主旋律 题解

【清华集训2014】主旋律 题解 神秘题。 题目简述 给你一个有向图 $G=(V,E)$。求有多少 $E$ 的子集 $E'$ 使得新图 $G'=(V,E')$ 是强连通图。 强连通图的定义是任意两点 $u,v$ 均存在 $u\to v,v\to u$ 的路径。 $n\leq 15,m\leq n\t ......
题解 主旋律

DFS分布式文件系统

一、GFS文件系统概述 1.GlusterFS简介GlusterFS 是一个开源的分布式文件系统。由存储服务器、客户端以及NFS/Samba 存储网关(可选,根据需要选择使用)组成。没有元数据服务器组件,这有助于提升整个系统的性能、可靠性和稳定性。MFS传统的分布式文件系统大多通过元服务器来存储元数 ......
分布式 文件 系统 DFS

DFS

1. n-皇后问题 题目描述 $n-$皇后问题是指将 $n$ 个皇后放在 $n \times n$ 的国际象棋棋盘上,使得皇后不能相互攻击到,即任意两个皇后都不能处于同一行、同一列或同一斜线上。 现在给定整数 $n$,请你输出所有的满足条件的棋子摆法。 输入格式 共一行,包含整数 $n$。 输出格式 ......
DFS

一道一板一眼的数位dp和二分结合的板子题

题目 1811E - Living Sequence 题意 找出第n个,数位中不含‘4’的数字 思路 数位dp + 二分 唯一要注意的就是纯dfs搜索会卡常(hh,就是复杂度太高了),用上一点记忆化 代码 const int N = 14; int dp[N][N]; int a[N]; int l ......
一板一眼 板子 数位 一道

第二十届浙大城市学院程序设计竞赛 I.Magic Tree DFS序线段树

传送门 大致思路: ** 我们知道dfs序上的整颗子树dfs序编号连续,因为每次删除一个点或者新增一个点都导致子树上所有点的深度加一或者减一。由于是区间修改所以我们考虑dfs序上建线段树。** ** ** #include <iostream> #include <cstring> #include ......
线段 程序设计 程序 学院 城市

Disjoint-Set-Union Sum (诈骗题)(区间DP, 位置顺序!!!!)

题目大意: 给出一个序列P , n 个点 每次可以选择2个 相邻区间进行合并, 会产生一个贡献值,当然合并n-1就合并完了, 问在所有的情况下, 贡献和是多少 思路: 易错点: 这个所有情况, 你枚举的合并的那个先后顺序是有关系的!!! 因此直接去区间dp只能把各个合并的情况给弄出来,但是他的先后顺 ......

Leetcode(剑指offer专项训练)——DP专项(7)

矩阵中的距离 题目: 给定一个由 0 和 1 组成的矩阵 mat ,请输出一个大小相同的矩阵,其中每一个格子是 mat 中对应位置元素到最近的 0 的距离。 两个相邻元素间的距离为 1 。 链接 TLS思路题解 暴力DFS的结果是超时😢,就是找每个位置的距离它最近的零点的位置 class Solu ......
专项 Leetcode offer

[Algorithm] DP - 03. Max Subset Sum No Adjacent - Slice window

Write a function that takes in an array of positive integers and returns the maximum sum of non-adjacent elements in the array. If the input array is ......
Algorithm Adjacent Subset window Slice

洛谷(dp) 动态规划练习的部分题目心得

P1044 栈这个题目 最大的问题是完全没有想清楚dp数组如何定义,完全陷入了背包的那个dp数组含义中了,导致怎么都想不出关系, 而且看了题解提示之后也无法领悟递推的思想,无法感受那种由前面推导后面的思想. 导弹拦截 P1020 这题是我太惯性思维了,疯狂往如何才能构造dp数组想,然后没能真的把握题 ......
题目 心得 部分 动态

状压DP简介

##普通DP回顾 DP是解决多阶段决策最优化问题的一种思想方法,即利用各个阶段之间的关系,逐个求解,最终求得全局最优解。我们通常需要确认原问题与子问题、动态规划状态、边界状态、状态转移方程。 动态规划多阶段一个重要的特性就是无后效性,即“未来与过去无关”。无后效性就是对于某个给定的阶段状态,它以前各 ......
简介

状压DP

[acwing]291. 蒙德里安的梦想 /* 横放的方案数就等于总方案数,因为横着放完后,再竖着放是唯一的 dp[i][j] 表示第 i 列状态为 j 的方案数 状态为 j 是指:各行用 0 或 1 表示摆放状态 :若某行为 0,表示竖放或由前一列伸出 :若某行为 1,表示横放并向后一列伸出 dp ......

蓝桥杯(全球变暖dfs)

蓝桥杯(全球变暖dfs) import java.util.Scanner; /** * 该题使用了深度优先算法dfs用于把相连的#号当成一块大陆,并通过数组记录下有几块大陆 * dfs算法并不难,只要对用dfs处理过后留下的aes数组和sea数组进行处理得到结果即可 * 我的思路就是 * 1、se ......
蓝桥 全球 dfs

扑克牌 - 期望dp

扑克牌 - 期望dp https://www.acwing.com/problem/content/220/ #include <bits/stdc++.h> using namespace std; const int N = 20, inf = 1e9; double f[N][N][N][N] ......
扑克牌 扑克