subsequence1 subsequence大小dp

东方博宜 2166 - 子树的大小及深度

题目描述 现在有一棵 n 个结点的树,结点 1为这棵树的根,结点 1 的深度为 1,求出每棵子树的大小及每个结点的深度。 比如,有如下图所示的树: 该树中: 结点 1 对应的子树大小为 6,深度为 1。 结点 2 对应的子树大小为 5,深度为 2。 结点 3 对应的子树大小为 1,深度为 3。 结点 ......
深度 大小 2166

7.25 day2数据结构优化dp

战绩: 100+100+20+54 = 374 T1 据lxl说是为了成绩好看加的题,难度大概cspjT1 T2 朴素dp然后树状数组优化一下 T3 赛时脑抽链,写了个dp,一直想优化dp,其实贪心就好了,过程更加简洁,优化很显然 先将区间剖分成两段端点$s_i=s_j$相同的多条线段 将区间每个点 ......
数据结构 结构 数据 7.25 day2

struct的内存大小计算

#include<stddef.h>//引用宏的头文件 //struct //{// char a;// int b;////}x;//匿名创建结构体,后面必须直接创建一个全局结构体变量//struct//{// char a;// int b;//}*p;//匿名创建结构体指针,两个声明是不同的类 ......
大小 内存 struct

树形DP

## [P3565 [POI2014] HOT-Hotels ](https://www.luogu.com.cn/problem/P3565) ### $solution 1$: 先说一下我想到的 $O(n^2)$ 算法。 首先不难发现,如果三个点两两距离相等,那么一定存在一个中心点,使得中心点到 ......
树形

Beanshell 替换和大小写转换

#d15ac656-d917-4eb4-bf81-029080e16fad 转成 D15AC656D9174EB4BF81029080E16FAD String MEM_AcctId = "d15ac656-d917-4eb4-bf81-029080e16fad"; String new_MEM_A ......
Beanshell 大小

区间dp

### P1880 [NOI1995] 石子合并(破环成链+石子合并类套路) **题目** 在一个圆形操场的四周摆放 $N$ 堆石子,现要将石子有次序地合并成一堆,规定每次只能选相邻的 $2$ 堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分。 试设计出一个算法,计算出将 $N$ 堆石子合 ......
区间

期望DP

### 期望的线性性 即$E(x+y)=E(x)+E(y)$ 期望的其它性质($C$是常数) $$ E(C)=c\\ E(Cx)=CE(x)\\ \text{当X与Y互相独立},E(xy)=E(x)E(y) $$ ### 路径长度 (倒推与期望的线性性) **题目** 给定一个起点为$1$,终点为$ ......

数位dp

### 数位dp的一般套路 **问题形式** 给你一个条件 $A$ ,然后询问值大小在 $[L,R]$ 中有多少满足条件的数 这个问题暴力去做一般是 $\mathcal{O}(R)$ 的时间复杂度,但是通过数位dp我们可以把这个东西优化到 $\mathcal{O}(\log_{10}R)$ **求解 ......
数位

计数dp

### 错位排列计数 (组合意义dp) **题目** 给定长度为 $n$ 的排列,求解其错位排列数 **题解** 设 $D_n$ 表示长度为 $n$ 的排列的错排数,考虑我们已经知道了前 $n-1$ 个错排数,那么对新加入的这第 $n$ 个数进行分类讨论 + 直接与前面的数交换,有 $(n-1)\t ......

斜率优化dp

### 斜率优化简介 **问题引入** 给定一个长度为 $n$ 的序列 $a[i]$ ,连续若干个数可以分为一组,将这些数分成若干组,每一组的代价为组内元素和的平方,要求最小化代价 $n\le 2\times 10^5$ **朴素算法** 设 $f[i]$ 表示将前 $i$ 个数分组之后的最小代价, ......
斜率

矩阵快速幂优化dp

### 寻址连续优化 ~~~cpp for(int i = 1; i <= n; i++) for(int k = 1; k <= n; k++) if(a.a[i][k]) for(int j = 1; j <= n; j++) c.a[i][j] = (c.a[i][j] + 1ll * a.a ......
矩阵

决策单调性优化dp

### 四边形不等式 **定义** 若函数 $w(x,y)(\mathbb{Z} \times \mathbb{Z} \rightarrow \mathbb{Z})$ 对于 $\forall a,b,c,d \in \mathbb{Z}$ ,其中 $a \leq b \leq c \leq d$ , ......

数据结构优化dp

### 滚动数组 在dp时经常会发现只有相邻阶段间状态才会有直接联系,在转移方程中的体现形如:只有前 $m$ 个阶段能影响当前阶段的状态,因此我们不需要储存下 $n$ 个阶段的所有状态,只需要储存 $m$ 个阶段的状态,以做到优化存储空间的目的。 用这种方法可以将dp某一维干掉,把 $\mathca ......
数据结构 结构 数据

DP技巧与DP杂题

### DP常用技巧 1. 增加维数 2. 交换答案与状态 3. 可行解转最优解 4. 删掉本质相同的状态 5. 对部分状态$dp$ 6. 遇到转移顺序的困难,考虑记忆化搜索 7. 遇到转移细节过多的问题,考虑从 $i\rightarrow i+1$ 而不是 $i-1\rightarrow i$ 8 ......
技巧

序列dp

### LCS问题 **题目1** 给定 $A,B$ 两个排列,求它们的 $\text{LCS}$ **题解1** 两个序列都是排列,那么可以考虑建立映射关系跑LIS **题目2** 给定 $A,B$ 两个序列,求它们的 $\text{LCS}$ **题解2** 就是个简单的多序列dp 设 $f[i ......
序列

背包dp

### [BJOI2019] 排兵布阵 (背包dp与贪心) **题目** 小 C 正在玩一款排兵布阵的游戏。在游戏中有 $n$ 座城堡,每局对战由两名玩家来争夺这些城堡。每名玩家有 $m$ 名士兵,可以向第 $i$ 座城堡派遣 $a_i$ 名士兵去争夺这个城堡,使得总士兵数不超过 $m$。 如果一名 ......
背包

树形dp

### P3174 [HAOI2009] 毛毛虫 (树的直径变式) **题目** 对于一棵 $N$ $(N \le 3\times 10^5)$ 个点的树,我们可以将某条链和与该链相连的边抽出来,看上去就象成一个毛毛虫。 求点数最多的毛毛虫 **题解** 本题与树的直径的求法非常类似 设 $f_u$ ......
树形

状态压缩DP

### 相关技巧 + 枚举子集:如果一个集合状态 $S$ 由其所有子集 $S0\subsetneq S$ 转移得到,这样转移的时间复杂度为 $\sum\limits_{i = 0} ^ n\dbinom n i 2 ^ i=3 ^ n$ ~~~cpp for(int S0 = S; S0; S0 = ......
状态

线性 DP、背包问题、区间 DP 学习笔记

## 动态规划基础知识 ### 基本概念 1. 动态规划:解决**多阶段决策过程最优化**问题的一种方法。 2. 阶段:把问题分解成相互联系的有顺序的几个环节,这些环节即成为阶段。 3. 状态:某一阶段的**出发位置**称为状态。通常一个阶段包含若干状态。 4. 决策:从某阶段的一个状态演变到下一个 ......
区间 线性 背包 笔记 问题

从gcc早期源码看结构体大小

既然sizeof是运算符,不是函数,那么它的机制到底是什么?C语言规范或编译器应该有所体现。 gcc-0.9,其他版本的有需要再看, 暂时不能handle cmake, 以后再看CLANG/LLVM。 搞清楚编译器,就可以相信编译器。 未经本人同意,禁止转载。 ......
源码 大小 结构 gcc

数值类型比较大小

```C++ // Integral type equal template typename std::enable_if::value, bool>::type Equal( const T& lhs, const T& rhs) { return lhs == rhs; } // Floati ......
数值 大小 类型

调整PR界面字体大小

# 1.问题 界面字体太大或者太小,看得不舒服 # 2.解决问题 按住ctrl+F12,调出如下工作台 ![image-20230723230832620](https://img2023.cnblogs.com/blog/3017398/202307/3017398-202307232310573 ......
界面 字体 大小

DP爬楼

**[problem1 一双木棋 chess](https://www.luogu.com.cn/problem/P4363)** 分析性质,发现每个时刻的状态都是锯齿线,考虑怎么把状态压进去,对于每个时刻都对应一个在 n 维上走了若干步和 m 维上走了若干步,如果用一个 11 进制数存的话会有 $ ......

根据内存占据的大小排列,看到C盘里面哪个文件占据流量最大?

大家好,我是皮皮。 ### 一、前言 这篇文章还得从前几天在Python最强王者群【🏖Vivi 許】问了一个计算机文件处理的问题说起,他的电脑C盘爆了,想着清除,释放一些内存空间来,但是又怕误删系统文件。 这里他提出了一个想法:其实有没有一种方法,就跟手机一样,根据内存占据的大小排列,看到C盘里面 ......
流量 大小 内存 文件

一类特殊的 dp 模型--zhengjun

这类问题大概长这样: 求一个排列 $p_{1\sim n}$,最小(大)化如下值: $$ \sum\limits_{i=1}^{n-1}f(p_i,p_{i+1})\\ f(i,j)= \left\{ \begin{array}{**lr**} g(i)+h(j),ij \end{array} \r ......
zhengjun 模型 dp

Subsequence Addition

# Subsequence Addition (Hard Version) ## 题面翻译 本题为困难版,两题的唯一区别在于数据范围的大小。 数列 $a$ 最开始只有一个数 $1$,你可以进行若干次操作,每次操作你可以选取 $k$ 个数($k$ 无限制,小于等于 $a$ 的大小即可),将这 $k$ ......
Subsequence Addition

DP 动态规划 采药

#include<bits/stdc++.h> using namespace std; int t,m,w[105],v[105],f[105][1005]; int main() { cin>>t>>m; for(int i=1; i<=m; i++) cin>>w[i]>>v[i]; for( ......
动态 DP

数位 DP - 知识点梳理

本质上是一种基于数位的线性 DP。 通常用于区间统计问题。当暴力枚举会超时,数位 DP 可以对区间的值进行按位求解,有时使用位值原理,把每位上相同的数一起求解,降低时间复杂度,有时会用到高位优先的贪心思想。 ## 实现 [Luogu P4124 [CQOI2016] 手机号码](https://ww ......
知识点 数位 知识 DP

状态压缩 DP - 知识点梳理

状态压缩 DP,或状压 DP,是对状态的一种优化。相比于普通 DP,通过将高维状态压缩成一个数,减少了维度,并使维度更易于存储与维护。同时这样与 `bitset` 一样利用了计算机在 $O(1)$ 内处理位运算的能力,大幅度优化了时间复杂度。 一般当题目中的状态由多个 $0$ / $1$ 组成,数量 ......
知识点 状态 知识 DP

直播小程序源码,单词首字母大小写判断

直播小程序源码,单词首字母大小写判断 # 判断传单词首字母是否为大写def ckWord(*args): for arg in args: if arg[0].isupper(): print(True) else: print(False)ckWord(input("请输入测试单词: ")) ​以 ......
程序源码 单词 源码 字母 大小