随笔分类 -  动态规划

摘要:Description "题面" 求[l,r]有多少个数满足数位中出现长度=2的回文数,比如121110都满足 $l,r include include include define ll long long define re register define maxn 1010 阅读全文
posted @ 2019-11-12 09:37 __Liuz 阅读(115) 评论(0) 推荐(0) 编辑
摘要:Description "题面" 给定[L,R],求在[L,R]内满足下列条件的数的个数: 1.长度为11,不含前导零 2.存在三个相邻的数相等 3.不能同时出现48 Solution 数位DP我习惯于写递推版本,于是预处理就崩溃了 " " 发现预处理需要考 阅读全文
posted @ 2019-11-11 15:59 __Liuz 阅读(99) 评论(0) 推荐(0) 编辑
摘要:~~第一次手切DP紫题祭~~ Description "题面" 给定两个数a,b,求[a,b]内,数码09出现的次数 Solution 话说这道题就是 "P1554梦中的统计" 的强化版,记得这道题刚学OI的时候做过(指梦中的统计)。对于这道题而言,朴素做法只有$30p 阅读全文
posted @ 2019-11-11 11:09 __Liuz 阅读(110) 评论(0) 推荐(0) 编辑
摘要:属于数位DP入门级别的题目,但我做这类题不多,还是要总结一下这道经典题目 Description "题面" 给定a,b,求[a,b]区间有多少个数满足:任意两个相邻数位之间的差的绝对值=2 $a,b=2) dp[i][j]+=dp[i 1][k];//把0的情况也处理 } in 阅读全文
posted @ 2019-11-10 21:54 __Liuz 阅读(121) 评论(0) 推荐(0) 编辑
摘要:Description "题面" 有$n(n include include include define re register define maxn 100010 using namespace std; inline int read() { int x=0,f=1; char ch=g 阅读全文
posted @ 2019-11-09 15:05 __Liuz 阅读(97) 评论(0) 推荐(0) 编辑
摘要:Description "题面" 题意是给你一颗n个节点的树和k(k20),每条边权是1,告诉你n个点的点权,输出到点i距离k的所有点的点权和 Solution 感觉很不可做,一开始考虑维护距离为k的点,然后跟着当前点往一个方向走,发现根本没法 阅读全文
posted @ 2019-11-03 16:33 __Liuz 阅读(108) 评论(0) 推荐(0) 编辑
摘要:Description "题面" 给你一颗有根树,你只能增加一条边的边权,最后需要使得根到每个叶子节点的距离相等 Solution 一道有点贪心意味的DP题,假设一开始根节点到叶子节点的最远距离为d,考虑到只能加边权不能减边权, 显然最终根节点到所有叶子节点的距离d2一定等于$d 阅读全文
posted @ 2019-10-24 15:45 __Liuz 阅读(114) 评论(0) 推荐(0) 编辑
摘要:树的直径 树的直径,是指树上最长的一条链。 求树的直径有两种方法 1.DPd1[u]表示u到达子树中叶子节点的最长链,d2[u]表示u到达子树中叶子节点的次长链,两条链不能有交集,只需要对每个节点做以下更新同时维护最大值最小值即可 这样维护保证了不会出现交集,不用$d2[ev] 阅读全文
posted @ 2019-10-23 16:04 __Liuz 阅读(4041) 评论(0) 推荐(3) 编辑
摘要:四边形不等式 使用范围:区间序列DP求最小值(一定是最小值) 对于动态规划转移方程 其中w(i,j)只受i,j取值影响 如果满足下面两个条件 1.区间单调性:如果对于iiS(i,j 1)\leq S(i,j)\leq S(i,j+1)$ 考试时可以 阅读全文
posted @ 2019-10-23 09:56 __Liuz 阅读(230) 评论(0) 推荐(0) 编辑
摘要:Solutionn100左右时,直接O(n3)区间DPn40000左右时,需要用贪心算法: 加西亚 瓦克斯算法 (Garsia Wachs) 注:这个方法仅求石子合并的最小答案 这是大概的流程 这是关于Garsia Wachs算法的正确性证明: 阅读全文
posted @ 2019-10-23 08:51 __Liuz 阅读(245) 评论(0) 推荐(0) 编辑
摘要:下面这两道题非常相似,我本来以为可以双倍经验,结果看到数据范围就凉了 P3146传送门 P3147传送门 #Description 在一个1n的网格图中,每一个格子有一个权值,相邻两个格子如果权值相同可以合并,权值+1,相当于一维的2048小游戏,只不过合并后权值不是2而是$ 阅读全文
posted @ 2019-10-22 16:26 __Liuz 阅读(139) 评论(0) 推荐(0) 编辑
摘要:Description "题面" n个同学按顺序排成一队,他们都有一个身高Hi,这个顺序称为初始队形 现在按照以下法则重新站队: 对于第一个同学,直接站到新队伍中,队友后面每个同学,假如在初始队伍中他比前面的同学高则站到新队伍最右边,否则站到新队伍最左边(数据保证每个同学身高不同)。所 阅读全文
posted @ 2019-10-22 14:23 __Liuz 阅读(149) 评论(0) 推荐(0) 编辑
摘要:Descriptionn个员工,需要从中选择k组员工,每组2人,1人组长了,1人组员。 每个员工有三个数值:w,s,qw表示经验值,s表示薪水,q是意愿q=1,2,3 q=1表示该员工想当组长,q=2表示该员工想当组员,q=3表示该员工随 阅读全文
posted @ 2019-09-07 21:31 __Liuz 阅读(207) 评论(0) 推荐(0) 编辑
摘要:一道水题,我也不知道为什么要写博客,这应该是最后一次了 Description 给你n个节点的树,要求你在上面选取一个联通块,使得点权和最大 Soution 树形DP,我们实际上是在求一颗子树,用dp[i]表示以i为根的子树能得到的最大值即可 转移方程显然:$DP[i]=a[ 阅读全文
posted @ 2019-08-01 18:55 __Liuz 阅读(126) 评论(0) 推荐(0) 编辑
摘要:题目描述 有一个ab的整数组成的矩阵,现请你从中找出一个nn的正方形区域,使得该区域所有数中的最大值和最小值的差最小。 输入输出格式 输入格式: 第一行为3个整数,分别表示a,b,n的值 第二行至第a+1行每行为b个非负整数,表示矩阵中相应位置上的数。每行相邻两数之间用一 阅读全文
posted @ 2019-08-01 09:30 __Liuz 阅读(119) 评论(0) 推荐(0) 编辑
摘要:LIS 首先区分一组概念 子序列:一个序列的子集,可以是连续也可以是不连续的。 子串:一个序列的子集,必须是连续的。 最长上升子序列的意思就不多说了 1.朴素做法O(n2)dp[i]表示以i为结尾的最长子序列的长度 在遍历的同时让j1i1遍历,如果$a[i] 阅读全文
posted @ 2019-07-31 19:37 __Liuz 阅读(530) 评论(0) 推荐(0) 编辑
摘要:Translate 给出n5元组,从中选出k组,使得在k组中5个位置,每个位置上最大数(在选择的k组中的最大值)之和最大,求这个和。 Input (输入有多组数据) 第一行T为数据组数,每组数据的第一行为n,k,接下来n(n=5时,显然每个位置的最大值一 阅读全文
posted @ 2019-05-21 17:54 __Liuz 阅读(97) 评论(0) 推荐(0) 编辑
摘要:一道树形DP Translate 有一颗n个节点的树 第i个节点权值为ai (nv)的v节点序号。 Solution 很明显我们可以在DFS遍历树的时候记录子树和这个节点的权值和,我们要要将这个树分成三部分,每部分权值和都为Sum/3,所以当我们找到当前的和为$Su 阅读全文
posted @ 2019-05-17 15:12 __Liuz 阅读(412) 评论(1) 推荐(0) 编辑
摘要:题目描述 五一来临,某地下超市为了便于疏通和指挥密集的人员和车辆,以免造成超市内的混乱和拥挤,准备临时从外单位调用部分保安来维持交通秩序。 已知整个地下超市的所有通道呈一棵树的形状;某些通道之间可以互相望见。总经理要求所有通道的每个端点(树的顶点)都要有人全天候看守,在不同的通道端点安排保安所需的费 阅读全文
posted @ 2019-05-14 17:53 __Liuz 阅读(257) 评论(0) 推荐(0) 编辑
摘要:依旧是状态压缩DP(什么叫依旧是,这不是第一道吗) 题目大意 有N*M个方格,每个方格是平原(“P”)或者山地(“H”),如果是平原则可以布置炮兵 每个炮兵的攻击范围是向上向下两格,向左向右两格,以及自己共5格,在攻击范围内不能再布置炮兵,问最多布置多少炮兵 输入输出格式 输入格式: 第一行包含两个 阅读全文
posted @ 2019-05-12 16:22 __Liuz 阅读(251) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示