![](https://img-blog.csdnimg.cn/2019092715111047.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
------Dynamic Progamming-----
文章平均质量分 91
动态规划
aWty_
在 AFO 的边缘徘徊的 OIer
展开
-
CSP-S2019 Day2
给定一个 n×mn \times mn×m 的矩阵,矩阵上坐标为 (i,j)(i, j)(i,j) 的位置有 $$a_{i, j} 个数,矩阵中每一行最多选 111 个数,每一列选的数不能超过总选取数 kkk 的一半,且在矩阵中至少选一个数,问选取的方案数。 我们看看这三个约束条件,首先,至少选一个数和每行最多选一个的条件是很好满足的。难点就在于每列不能超过一半这个条件。 所以我们考虑简单容斥一下,我们求出全集再减去超过一半的数量,这样就得到了不超过一半的数量。 为什么要这样做呢,因为我们简单的分原创 2022-08-01 10:42:53 · 156 阅读 · 0 评论 -
NOIP2021 T3 方差
传送门:NOIP2021 T3作者是一个考场上没做出来的蒟蒻题目大意 给你一个长度为 nnn 的数组 a1,a2,a3,⋯ ,ana_1, a_2, a_3, \cdots, a_na1,a2,a3,⋯,an,这个数列是非严格单调递增的。然后我们可以对这个数组进行一种神奇的操作:选择一个数 aia_iai,然后 ai=ai+1+ai−1−aia_i = a_{i+1} + a{i-1} - a_iai=ai+1+ai−1−ai。问进行若干次(随便多少次)操作之后这个数列的方差的最原创 2021-12-12 14:44:47 · 575 阅读 · 0 评论 -
NOIP2021 T2 数列
NOIP2021 T2原创 2022-07-23 19:50:53 · 366 阅读 · 0 评论 -
关于斜率优化
斜率优化原创 2022-06-11 17:08:22 · 147 阅读 · 0 评论 -
NOIP Practice Recordings DP
我的 NOIP DP 刷题记录原创 2022-04-11 23:40:49 · 99 阅读 · 0 评论 -
关于悬线法
悬线法 传送门: luogu4147 玉蟾宫关于悬线 这个方法似乎是用来搞最大子矩形的~~。 大概就是你想想从点阵中的一个点 (i,j)(i, j)(i,j) 向下垂一条线,然后这条线左右摆动直到碰到从这个点能扩展出去的最大的矩形的边界。 记 lefti,jleft_{i, j}lefti,j 表示从 (i,j)(i, j)(i,j) 这个点能到达的最远的左边界,同理我们定义 righti,jright_{i, j}righti,j 和 upi,jup_{i, j}upi,j。然后我原创 2022-04-09 10:46:45 · 363 阅读 · 0 评论 -
炮兵阵地(状压DP)
炮兵阵地 原题传送门:luogu P2704题目描述 司令部的将军们打算在 N×M(N<100,M<10)N\times M \quad (N < 100,M < 10)N×M(N<100,M<10) 的网格地图上部署他们的炮兵部队。 一个 N×MN\times MN×M 的地图由 NNN 行 MMM 列组成,地图的每一格可能是山地(用 H\texttt{H}H 表示),也可能是平原(用 P\texttt{P}P 表示),如下图: 在每一格平原地形上最多原创 2022-03-12 17:14:14 · 324 阅读 · 0 评论 -
CSP-S2021 T2 括号序列
CSP-S 2021 T2 考场上没推出来,我太蒻了分析 这个做法肯定不是我原创的 我太蒻了,这是我看了 luogu 上的一篇题解之后加上我的理解写出来的分析。原文在这里:传送门 luogu P7914 CSP-S 2021 括号匹配 题解 首先,肯定是区间 DP,不用想了。那我们设 F[l,rF[_{l, r}F[l,r 表示从 lll 到 rrr 的合法序列数量。但是这道题有个很烦的事情就是,有很多种状态它都是合法的,所以我们要对每一种转移做讨论。所以我们对于几种不同的转移把 FFF 扩原创 2021-11-15 21:14:55 · 829 阅读 · 0 评论 -
关于单调队列优化
单调队列优化一道题 我们来看这道神奇的题:CF372C Watching Fireworks is Fun 题目大意是,一个城镇有 nnn 个区域,从左到右编号为 1 到 nnn ,每个区域之间距离 1 个单位距离。现在城市要举行一个烟花节目,一共有 mmm 个烟花要放,每一个烟花给定一个放的地点 a1a_1a1,放的时间 tit_iti 和一个参数 bib_ibi,如果此时你所处再 xxx 区域,那么你看到这个烟花就会产生 bi−∣ai−x∣b_i - \mid a_i - x \midb原创 2021-11-14 19:52:57 · 663 阅读 · 1 评论 -
石子合并~
石子合并 原题传送门:luogu P5569 SDOI2008 题目大意:现在有 NNN 堆石子排成一排,其中第 iii 堆石子的重量为 AiA_iAi,每次可以选相邻的两堆石子合并起来,然后形成新的石子堆的重量是原来两堆石子的重量和,并且会得到与合并之后的重量相等的分数,求把所有的石子都合并到同一堆的时候的得分的最小值。 显然,如果最初的第 lll 堆石子要和第 rrr 堆石子合并,那么 l∼rl \sim rl∼r 的石子肯定都被合并过了,因为这样 lll 和 rrr 才可能相邻。所以在所原创 2021-11-12 11:41:48 · 413 阅读 · 0 评论 -
Making The Grade G
Making The Grade G 原题传送门: luogu P2893 USACO08FEB 题目大意: 给定一个长度为 NNN 的序列 AAA 让你构造一个长度也为 NNN 的序列 BBB,且 BBB 非严格单调(不限制单增或单减),且要最小化 T=∑i=1N∣Ai−Bi∣T = \sum\limits_{i=1}^N \mid A_i - B_i \midT=i=1∑N∣Ai−Bi∣。 因为这里分成两种情况,一种 BBB 是非严格单增的,另一种 BBB 是非严格单减的,所以我们考虑原创 2021-11-12 10:23:05 · 264 阅读 · 0 评论 -
几个经典的线性 DP 模型
线性 DPLIS Longgest increasing subsequence,最长上升子序列。给定一个长度为 NNN 的数列 AAA,求数值单调递增的子序列的长度最长是多少。AAA 的任意子序列 BBB 可以表示成这样:B={Ak1,Ak2,⋯Akp}k1<k2<⋯<kp B = \lbrace A_{k_1}, A_{k_2}, \cdots A_{k_p} \rbrace \quad k_1 < k_2 < \cdots < k_p B={Ak1,Ak原创 2021-11-12 08:09:44 · 332 阅读 · 0 评论 -
数字计数?
数位 DP 本篇主要内容是一片题解传送门:luogu P2602 数字计数题目描述给定两个正整数 a 和 b,求在 [a,b] 中的所有整数中,每个数码(digit)各出现了多少次。输出包含一行十个整数,分别表示 0∼9 在 [a,b] 中出现了多少次。输入输出样例:输入:1 99输出:9 20 20 20 20 20 20 20 20 20分析 乍一看好像是一道大水题,再一看数据范围,101210^{12}1012 …,好吧这题不水。 但是这道题还是很良心的啊,都把 digit原创 2021-10-27 07:58:42 · 451 阅读 · 3 评论 -
关于背包问题
0/1 背包#include<bits/stdc++.h>using namespace std;#define MAXN 10010int n = 0; int m = 0;int w[MAXN] = { 0 };int c[MAXN] = { 0 };int f[MAXN] = { 0 };/* 一维0/1背包倒序 */int knapsack01(int n, int m){ for(int i = 1; i <= n; i++){ for(int j原创 2021-10-13 23:10:43 · 196 阅读 · 0 评论 -
木棒交叉 Intersect
原题大意如下:有 n 根木棒(木棒可以理解为无限长其实就是一根直线),n根木棒可能互相平行也可能相交,但不可能存在三根即以上的木棒交于同一点。然后就是输入好几个n和m让你判断这n根木棒存不存在一种摆放方式让它们有m个交点。 然后数据的范围我记不清了,等明天回学校把原题找出来再说qwq。(反正好像是是正解)我呢,一看到这个题就感觉这玩意儿不就是找规律吗?然后我就开始画图......就挺离谱的...原创 2021-10-10 23:20:56 · 633 阅读 · 1 评论