斜率longest path dp

【容斥、状压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 ......
题解 主旋律

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

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

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

续:python 新环境的创建并在 spyder 中转换 - 如何解决转换环境时报错:invalid file path_艽野尘梦 better 的博客 - CSDN 博客

不要安装一个和已有 python 环境一样版本的 python(这里的一样指的是完全一样,比如都是 python2.7.15),如果已有 python2.7.15,可以创建 python2.7.18 的环境并在 spyder 中转换 ......
环境 博客 时报 invalid python

[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 ......

扑克牌 - 期望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] ......
扑克牌 扑克

nav_msgs/Path

nav_msgs/Path 消息用于描述一条路径信息。可以多设置几个坐标点,小车就会依次经过这些点。下面是消息格式 其中包含了header和poses两个部分: header:这个消息的头部信息,包括序列号seq、时间戳stamp和参考坐标系frame_id。 poses:一组路径点位姿信息,包含多 ......
nav_msgs msgs Path nav

线性DP+区间DP复习

线性dp 即递推状态转移方程有明显的线性关系,可能是1维线性,可能是2维线性,等等 如数字三角形:https://www.acwing.com/problem/content/900/ 首先考虑状态表示和状态计算 给图一个编号,如图,7为(4,2) 状态表示: f[i][j]表示所有从起点,走到i, ......
区间 线性 DP

go path ,go vendor,go mode 模式区别和发展

前言: 包是多个 Go 源码的集合,是一种高级的代码复用方案。 Go语言中为我们提供了很多内置包,如 fmt、os、io,strconv,strings 等 Go 语言的入口 main() 函数所在的包(package)叫 main。 main 包想要引用别的代码,必须同样以包的方式进行引用。 go ......
模式 vendor path mode go

os.path

os.path 模块是系统路径操作模块,但实际的原理可以把它认为是处理包含斜杠("/")和反斜杠("\")字符串的模块,其中,斜杠("/")是 linux 系统下的路径分隔符,和反斜杠("\")是 windows 系统下的路径分隔符。也就是说,只要提供一个包含斜杠和反斜杠的字符串,os.path 模 ......
path os

C. Unlucky Numbers(数位dp)

题目 https://codeforces.com/contest/1808/problem/C 题意 给两个数 l 和 r $ ( 1 ≤ l ≤ r ≤ 10^{18})$ 请找出再这个范围内的一个数字,使得按数位这个数字中的数最大值和最小值之差最小 思路 当 l 和 r 的数位长度不一样时,可 ......
数位 Unlucky Numbers

powershell path

https://github.com/ThePoShWolf/Utilities/blob/master/Misc/Set-PathVariable.ps1 <# .SYNOPSIS Modify the PATH environment variable. .DESCRIPTION Set-Pat ......
powershell path

【DP】LeetCode 256. 粉刷房子

题目链接 256. 粉刷房子 假如有一排房子,共 n 个,每个房子可以被粉刷成红色、蓝色或者绿色这三种颜色中的一种,你需要粉刷所有的房子并且使其相邻的两个房子颜色不能相同。 当然,因为市场上不同颜色油漆的价格不同,所以房子粉刷成不同颜色的花费成本也是不同的。每个房子粉刷成不同颜色的花费是以一个 n ......
LeetCode 房子 256

Leetcode刷题--最长回文子串/dp = [[False] * n for _ in range(n)]

官方动态规划解决最长回文串问题代码解释: class Solution: def longestPalindrome(self, s: str) -> str: n = len(s) #字符串的总长度 if n < 2: return s #如果字符串长度为1,则s本身就是最长回文串 max_len ......
回文 Leetcode False range for

树形DP——小红树

题目描述 小红拿到了一棵树,每个节点被染成了红色或者蓝色。 小红定义每条边的权值为:删除这条边时,形成的两个子树的同色连通块数量之差的绝对值。小红想知道,所有边的权值之和是多少? 输入描述 第一行输入一个正整数n,代表节点的数量。第二行输入一个长度为n且仅由'R'和'B'两种字符组成的字符串。第i个 ......
树形

path()方法函数定义

path()方法函数定义 path 函数在 Django中的的定义如下所示: path(route,view,kwargs,name) 它可以接收 4 个参数,其中前两个是必填参数后两个为可选参数。参数解析如下: 1. route route 是一个匹配 URL 的准则(类似正则表达式)。当 Dja ......
函数 方法 path

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

排序的数目 题目 给定一个由 不同 正整数组成的数组 nums ,和一个目标整数 target 。请从 nums 中找出并返回总和为 target 的元素组合的个数。数组中的数字可以在一次排列中出现任意次,但是顺序不同的序列被视作不同的组合。 题目数据保证答案符合 32 位整数范围。 链接 无效DF ......
专项 Leetcode offer

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

最少的硬币数目 给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。 你可以认为每种硬币的数量是无限的。 链接 完全背包问题 思路:主要是要自己推出动态转移方程 $$ F(i)=min_{ ......
专项 Leetcode offer

【DP】LeetCode 64. 最小路径和

题目链接 64. 最小路径和 思路 分析动态规划题目的时候只需要考虑最后一个阶段,因为所有的阶段转化都是相同的,考虑最后一个阶段容易发现规律 表示状态 假设到了右下角,考虑一下我们要存储的信息 走到最后坐标的最小步数 当前坐标的信息,用来判断是否走到了右下角 很容易联想到使用二维数组 dp[i][j ......
路径 LeetCode 64

【DP】LeetCode 70. 爬楼梯

题目链接 70. 爬楼梯 思路 分析动态规划题目的时候只需要考虑最后一个阶段,因为所有的阶段转化都是相同的,考虑最后一个阶段容易发现规律 表示状态 假设走到了最后一层台阶,考虑一下我们要存储的信息: 走到这最后一层台阶的方法数 当前台阶数,用于判断是否走到了最后一层台阶 这时候很容易想到使用一维数组 ......
楼梯 LeetCode 70

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

加减的目标值 给定一个正整数数组 nums 和一个整数 target 。 向数组中的每个整数前添加 '+' 或 '-' ,然后串联起所有整数,可以构造一个 表达式 : 例如,nums = [2, 1] ,可以在 2 之前添加 '+' ,在 1 之前添加 '-' ,然后串联起来得到表达式 "+2-1" ......
专项 Leetcode offer

Windows 如何让环境变量(例如PATH路径)设置后------不需要重启立即生效

##不重启生效方法 以修改环境变量“PATH”为例,修改完成后,进入DOS命令提示符,输入:set PATH=C: ,关闭DOS窗口。再次打开DOS窗口,输入:echo %PATH% ,可以发现“我的电脑”->“属性”->“高级”->“环境变量”中设置的 PATH 值已经生效。 不用担心DOS窗口中 ......
变量 路径 Windows 环境 PATH

ACM NFLSOJ #834 - 【2021六校联考WC #2】三角形(找性质+数位 dp)

首先先手玩一下所有点的 $x$ 都相同的情况,你会发现存在解的必要条件是所有黑点的 $y$ 构成一段连续的区间,此时答案为 $(X+R-L,L)$,其中 $L,R$ 为所有点中纵坐标的最小和最大值。 受这个思想启发,我们考虑将所有点都变到同一 $x$ 坐标上,设 $X=\min{x_i}$。那么显然 ......
三角形 数位 性质 NFLSOJ 2021

简单理解 DP 套 DP

复制粘贴的: 通过一个外层的 DP 来计算使得另一个 DP 方程最终结果为特定值的输入数。 例如求有多少种输入使得一个背包 DP 恰好答案为 $K$。 外层 DP 的状态是所有子 DP 的状态的值。 子 DP 状态数很少,通常经过滚动数组优化,比如 $3n$ 变成 $2\times 3$) 通常我们 ......
DP

决策单调性优化 DP

虽然我之前说过「DP 优化的重点都在于设计 DP 而非优化 DP 」之类的话,不过这些优化方式的确值得一学。。 代码会单独放在另一篇文章里。 决策单调性优化 DP 这里面学问很深啊。优化方式也多种多样。 总的来说,对于一类形如 $f_i=\min f_j+w(j,i)$ 的转移方程,设 $p_i$ ......
DP

【做题笔记】树形 dp

1. luoguP2016 战略游戏 1.1 Solve 设计状态 $dp[i][0/1]$ 表示在 $i$ 子树内, 放/不放 第 $i$ 个节点使其合法所需的最少的士兵数目。则有: 不选 $i$ 节点,则 $i$ 的儿子必须选; 选 $i$ 节点,则 $i$ 的儿子可选可不选; 因此,转移方程为 ......
树形 笔记 dp