随笔分类 - DP
摘要:题意 给定 \(n\) 个仅由小写英文字母组成的字符串,从中选出 \(k\) 个,以任意顺序排列,使得得到的字符串字典序最小。 输出字典序最小的字符串。 做法 先将所有字符串按照如下方式排序: bool cmp(string A, string B){ return A+B<B+A; } 然后DP。
        阅读全文
                
摘要:题目地址 坑点一: dis[u][v] = w; ⇒ dis[u][v] = min(dis[u][v], w); 坑点二: 注意到有意义的状态是从f[i][0][0]=>f[i][min(m, i)][0/1],f[i][i][0/1]是有意义的,尤其是f[1][1][1]是 有 意 义 的 ! 
        阅读全文
                
摘要:P1439 【模板】最长公共子序列 题解 f[]维护当前最长的公共子序列,f[i]是这条子序列的第i个数在a中的位置。易知f[]是递增的。 对于b的第i个数b[i],找到其在a中的位置mp[b[i]],如果mp[b[i]]大于f[len],说明b[i]这个数可以加到当前最长子序列后面。 不然的话要想
        阅读全文
                
摘要:数位DP 一般求区间内满足限制的数的个数,状态设计考虑几位数和大小关系。 条件一般与数的大小无关,而与数的组成有关。 善于用不同的进制处理。 数位DP外套网络流、贪心、枚举。 一般的数据范围是1 e 9到1 e 18。 填数的过程中要满足上限限制和题目其他限制。 一般用记忆化搜索求答案。 HDU36
        阅读全文
                
摘要:#求最长上升子序列 太简单了不想写。。。。。 #求其最长长度的方案数 ##第一种,复杂度为$n^2$的方法 再开一个和f[][]数组长得差不多的g[][]数组,f[][]是放长度的,g[][]是放方案数的 先看看代码 for(int i=1;i<=n;i++){ f[i]=1;g[i]=1; for
        阅读全文
                
摘要:【题解】ybt1282:最大子矩阵 一本通是个好东西!不能好高骛远!! 有待思考的问题是能否把状态再压一维。 题目 【题目描述】 已知矩阵的大小定义为矩阵中所有元素的和。给定一个矩阵,你的任务是找到最大的非空(大小至少是1 × 1)子矩阵。 比如,如下4 × 4的矩阵 0 -2 -7 0 9 2 -
        阅读全文
                
摘要:题面描述 【题目描述】 最近XX公司举办了一个奇怪的比赛:鸡蛋硬度之王争霸赛。参赛者是来自世界各地的母鸡,比赛的内容是看谁下的蛋最硬,更奇怪的是XX公司并不使用什么精密仪器来测量蛋的硬度,他们采用了一种最老土的办法--从高度扔鸡蛋--来测试鸡蛋的硬度,如果一次母鸡下的蛋从高楼的第a层摔下来没摔破,但
        阅读全文
                
摘要:前言 大半年前写的东西了,自己真的在走下坡路 例题 A , B进行游戏。A先开始,轮流将n减去{2,3,4,5,6}中的一个数,谁最后无法进行减法了,就输了。 给定n。A,B都采用最优策略,问A是否会赢。 状态 设f[i]表示当前的数是i的时候,对于当前的先手来说是否会赢 f[i]=true,则赢 
        阅读全文
                
摘要:P2365 任务安排 题目描述 nnn 个任务排成一个序列在一台机器上等待完成(顺序不得改变),这 nnn 个任务被分成若干批,每批包含相邻的若干任务。 从零时刻开始,这些任务被分批加工,第 iii 个任务单独完成所需的时间为 tit_iti。在每批任务开始前,机器需要启动时间 sss,而完成这批任
        阅读全文
                
摘要:解法一: f[i][j][k] = 0/1表示使用前i个水晶,第一个塔高j,第二个塔高k,是否可行。 决策:第i个水晶放不放,放在哪。 f[i][j][k] = f[i - 1][j][k] || f[i - 1][j - a[i]][k] || f[i - 1][j][k - a[i]] 解法二:
        阅读全文
                
摘要:P1858 多人背包 题目描述 求01背包前k优解的价值和 DD 和好朋友们要去爬山啦! 他们一共有 K 个人,每个人都会背一个包。这些包 的容量是相同的,都是 V。可以装进背包里的一共有 N 种物品,每种物品都有 给定的体积和价值。 在 DD 看来,合理的背包安排方案是这样的: 每个人背包里装的物
        阅读全文
                
摘要:清北学堂DP营考试 共4题,全部为DP题,AC第一题,第二题60,第三题骗到10,第4题骗到20 T1签到题 超 【问题描述】 你是能看到第一题的 friends呢。 ——hja 众所周知,小葱同学擅长计算,尤其擅长计算组合数,但这个题和组合数没 什么关系。 给定𝑁个数a1, a2,⋯, a𝑁,
        阅读全文
                
摘要:例题 A , B进行游戏。A先开始,轮流将n减去{2,3,4,5,6}中的一个数,谁最后无法进行减法了,就输了。 给定n。A,B都采用最优策略,问A是否会赢。 状态 设f[i]表示当前的数是i的时候,对于当前的先手来说是否会赢 f[i]=true,则赢 f[i]=false,则输 转移 当先手A操作
        阅读全文
                
摘要:基础知识 动态规划实质 动态规划是图论的子问题 图论中 点 状态 边 转移 最优值 最短路 方案数 路径统计 动态规划的概念 题 场景(有好多种场景) 动态规划三要素: 状态 用来表示在哪一种场景,是描述场景的变量的集合 转移方程 状态之间的关系 初始化 动态规划的三种写法 用别人的状态转移到我 贡
        阅读全文
                
摘要://这其实也是卡特兰数 AJH 的积木 【问题描述】 由于 AJH太菜了,所以他用来消磨时间的方式只有搭积木。 AJH死后来到了神犇天堂,众所周知,只有神犇才可以进入神犇天堂,而蒟蒻只能入蒟 蒻地狱,所以他还需要通过考验才能进入神犇天堂。这时,神犇天堂的管理员_rqy 拿来了 一个箱子,上面有一张纸
        阅读全文
                
摘要:solution by Mr.gtf 一道简单的递推 首先我们对树高从大到小排序 很容易得到递推式 ans[i]=Σans[j] (j a[i]; sort(a + 1 , a + 1 + n); a[0] = 0; f[0] = 1; done = 1; for (int i = 1 ; i = 
        阅读全文
                
摘要:2020.1.20 主讲 GodofTheFallen 动态规划入门 dp,递归,递推,搜索,记忆化? 概念 动态规划(DP) 动态规划程序设计是对解最优化问题的一种途径、一种方法,而不是一种特殊算法。不像前面所述的那些搜索或数值计算那样,具有一个标准的数学表达式和明确清晰的解题方法。动态规划程序设
        阅读全文
                
摘要:【题解】 "P1020 导弹拦截" 从n^2到nlogn 第二问就是贪心,不多说 第一问: 简化题意:求最长不下降子序列 普通n^2: cpp include include include include include include include include define N 10001
        阅读全文
                
摘要:题目传送门[(https://www.luogu.com.cn/problem/P2758)] ###题目描述 设A和B是两个字符串。我们要用最少的字符操作次数,将字符串A转换为字符串B。这里所说的字符操作共有三种: 1、删除一个字符; 2、插入一个字符; 3、将一个字符改为另一个字符; !皆为小写
        阅读全文
                

浙公网安备 33010602011771号