动态规划
文章平均质量分 78
RWLinno
不经常逛CSDN,合作请联系我邮箱rwlinno@gmail.com,个人主页:https://rwlinno.github.io/
展开
-
【超好懂的比赛题解】2020ICPC澳门站 个人题解
title : 2021ICPC澳门站 个人题解date : 2022-10-6tags : ACM,题解,练习记录author : Linno题目链接:https://codeforces.com/gym/103119补题进度:8/12式子展开为:ans=∏i=1napi+∏i=2napi+...+∏i=nnapians=\prod_{i=1}^n a_{p_i}+\prod_{i=2}^n a_{p_i}+...+\prod_{i=n}^n a_{p_i}ans=∏i=1napi+∏i=2n原创 2022-10-08 23:35:31 · 1028 阅读 · 0 评论 -
【超好懂的比赛题解】2021ICPC台北站 个人题解
title : 2021ICPC台北站 个人题解date : 2022-10-4tags : ACM,题解,练习记录author : Linno题目链接:https://codeforces.com/gym/103443补题进度:8/12签到题,数据范围也很少,一个一个数就行了。B-Maximum Sub-Reverse Matching区间dp,我们可以用dp[i][j]dp[i][j]dp[i][j]表示从区间[i,j][i,j][i,j]翻转后的1的个数,初始状态为dp[i][i+1]=(S原创 2022-10-07 22:53:02 · 1286 阅读 · 0 评论 -
【超好懂的比赛题解】2021CCPC哈尔滨站 个人题解
title : 2021CCPC哈尔滨站 题解tags : ACM,题解,练习记录。原创 2022-10-05 22:50:33 · 1946 阅读 · 1 评论 -
【超好懂的比赛题解】2021 年四川省大学生程序设计竞赛
title2021年四川省大学生程序设计竞赛date2022-7-18tagsACM,练习记录authorLinno。原创 2022-07-18 08:25:44 · 2003 阅读 · 0 评论 -
【ACM程序设计实验】高分课程实验报告分享
title : 【ACM程序设计实验】高分课程实验报告分享tags : 大学课程结项date : 2022-7-8author : Linno笔者本身在ACM集训队训练,这门课是选上了之后教练就不需要我们上课就能拿高分。不过期末还是得花2天写这个报告,里面收录了18道ACM入门经典例题,涵盖了很多知识点,在此分享给大家。使用方式大概就是跟着这个实验报告(pdf是完整版)在vjudge上面找到相应的题目去做,然后这个报告有我亲手提供的解法思路和代码,希望能够帮助到大家学习ACM程序设计这门课。对了,如果原创 2022-07-08 00:46:13 · 283 阅读 · 0 评论 -
【算法竞赛学习笔记】状压DP
title : 状压DPdate : 2022-3-5tags : ACM,图论,动态规划author : Linno状压DP状态压缩,是利用二进制数的性质对问题进行优化的一种算法,经常与搜索和DP结合。状态压缩动态规划,俗称状压DP。在动态转移的过程中用二进制数表示状态,并利用位运算的性质可使得枚举方案大大减少。前置知识位运算基础判断数字x二进制下第i位是不是1。if(((1<<(i-1))&x)>0)将数字x二进制下第i位改成1x=x|(1<.原创 2022-04-11 21:02:38 · 541 阅读 · 0 评论 -
【算法竞赛学习笔记】数位DP
title : 数位DPdate : 2022-4-11tags : ACM,动态规划author : Linno数位DP数位dp是用到数字位数性质来计数的动态规划问题。一般形式比较固定:通常问一个范围内满足某种性质的数的计数问题。我们通过做差可以将问题转化为前n个数中满足条件的数的个数。要解决这个问题,一般步骤分为:①初始化;②计算每个数位对答案的贡献;③累加得到答案。分析思路这里强烈推荐yxc的数位dp分析法。将数字n分解为一棵树,然后求每一部分对答案的贡献。在初始化的过程,我们一般会.原创 2022-04-11 20:28:00 · 325 阅读 · 0 评论 -
【算法竞赛学习笔记】树分治
title : 树分治date : 2021-8-25tags: ACM,图论author : Linno树分治树分治是再树形结构上进行分治的一种操作,主要思想是除去树中的某些对象,使原树被分解成若干个互不相交的部分,由此可以解决许多以路径为询问对象的问题。一颗树上的路径有经过根节点的或者不经过根节点的两种。若我们把根节点删掉,则可以生成若干棵以原根节点的儿子为根节点的子树。问题引入给一颗带边权树,统计最短距离不超过k的顶点的对数。解法假设我们按重心把树分成若干子树,那么符合条件的.原创 2022-03-16 09:22:12 · 502 阅读 · 0 评论 -
【算法竞赛学习笔记】动态DP入门(附模板)
title : 动态DPtags : ACM,动态规划dates : 2022-2-27author : Linno动态DP动态DP,是将DP转移方程写为矩阵形式后运用数据结构维护来减少更新信息以及操作次数的优秀算法。通常可以配合线段树/平衡树/分块等维护序列信息或者用来解决树上的DP问题,同时支持点权(边权)修改操作。对于每一次修改,都不需要重新计算树上每个结点的答案,而是更新路径上相关点的答案,以均摊O(logn)O(logn)O(logn)的复杂度完成修改。前置知识矩阵 / 树链剖分.原创 2022-02-28 18:58:32 · 424 阅读 · 0 评论 -
【ACM算法学习笔记】分数规划专题
title : 分数规划date : 2021-11-16tags : ACM,杂项author : Linno分数规划实际上是求一个分式的极值,通常用二分方法来解决。一般分数问题会有奇怪的限制,比如“分母至少为W”。Dinkelbach算法Dinkelbach算法是分数规划的基本思想,大概为每次用上一轮的答案当作新的L(二分的左端点)来输入,不断的迭代直至收敛。板子Dropping tests#include<bits/stdc++.h>#define inf 0x.转载 2021-11-16 21:29:44 · 235 阅读 · 0 评论 -
【算法竞赛学习笔记】DP入门-超有用的DP详解
title : DP入门tags : ACM,动态规划date : 2021-10-31author : LinnoDP入门简介动态规划(Dynamic programming,简称DP)把复杂的问题分成若干个子问题进行求解,最终递推至整个大问题的答案。适用范围①满足最优子结构:不管过去状态和决策如何,对前面的决策所形成的状态而言,余下的诸决策必须构成最优策略。②无后效性:以前各阶段的状态无法直接影响它未来的决策。③子问题重叠性:由于DP实现过程中,需要不断储存各种状态,空间复杂度.原创 2021-10-31 12:48:54 · 688 阅读 · 0 评论 -
【算法竞赛学习笔记】决策单调性与斜率优化-超有用的DP详解
title : 决策单调性与斜率优化date : 2021-10-8tags : ACM,动态规划author : Linno前置知识四边形不等式定义若函数w(x,y)(Z×Z→Z)对于∀a,b,c,d∈Z,其中a≤b≤c≤d,都有w(a,d)+w(b,c)≥w(a,c)+w(b,d),则称函数w满足四边形不等式若函数w(x,y)(\Z×\Z→\Z)对于∀a,b,c,d∈\Z,\\其中a≤b≤c≤d,\\都有w(a,d)+w(b,c)≥w(a,c)+w(b,d),\\则称函数w满足四.原创 2021-10-29 00:49:53 · 408 阅读 · 0 评论