上一页 1 ··· 57 58 59 60 61 62 63 64 65 ··· 68 下一页
摘要: 网上很多区间dp的代码是记忆化搜索的,还有些说这种区间dp必须倒序枚举 其实没有必要倒序,我们只需要按正常的区间dp的定义,第一维是长度,第二维枚举起点,第三维枚举断点即可 判断凸包的方法就是跟网上一样的常用方法Graham #include <iostream> #include <cstdio> 阅读全文
posted @ 2020-02-20 12:48 朝暮不思 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 本题求周长,其实思路与面积完全相似 离散化+扫描线,本题甚至可以不用离散化,因为数据范围并不是特别大 我们能想到的暴力就是先算一遍横的,再算一遍竖的,我不知道这样能不能过,或许可以 但是我们发现其实可以在求竖线的时候顺便把横线求了,因为一条横线的长度永远是相邻x的差值 我们只需要考虑两个相邻的x有几 阅读全文
posted @ 2020-02-19 16:48 朝暮不思 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 这道题我们发现如果从前面往后插,我们并不能得到正确答案,因为位置一直在变化, 所以我们考虑从后往前插,最后一个数的位置肯定是正确的,接下来的树根据这个数的位置而改变 这里用到了一个权值线段树的一些想法,根据节点的大小来选择插哪边 #include<iostream> #include<cstdio> 阅读全文
posted @ 2020-02-19 15:01 朝暮不思 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 本题和某一年的oi题非常相似,都是经典套路 我们知道我们在送完食物后既可以向前送也可以回头送,这就体现了区间dp的思想 为什么我们这次的区间dp不用枚举第三维k来枚举从哪里送过来呢? 因为送货员不是傻子,他如果送到你这了,那么在你们两之间的可以都顺路送了,所以我们只需要枚举两个位置就行 这题的输入不 阅读全文
posted @ 2020-02-19 10:08 朝暮不思 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 对于这道题,我发现好多网上的题解对dp的物理意义讲的并不是十分透彻,但是代码又是正确的,这样初学者会感到十分难以接收dp的正确性 在这篇题解,我会讲解我的dp方程的物理意义(其实是对网上代码的理解之后的自己的想法),这题我觉得思维难度还是挺大的,如果是第一次做的话 首先我们看到什么改变字符串,又是最 阅读全文
posted @ 2020-02-18 21:59 朝暮不思 阅读(309) 评论(0) 推荐(0) 编辑
摘要: 动态规划要从最优子结构来推出大的方案 对于本题,我们要思考,什么是大的,什么是小的。 或许有些人会想设计状态为f[i],表示我从1-i的最小花费,但是仅仅这样是不够的,因为在这之间进小黑屋的不一定要在这之间就出来,他有后效性 那么什么是没有后效性的呢,如果我们判定这个区间就是全部的大小,他没有后面还 阅读全文
posted @ 2020-02-18 18:58 朝暮不思 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 这题一看就跟石子合并的类型相似,但是我们对状态的定义需要略加改变 因为我们观察到头和尾是不能删除的 我们定义f[l][r]为不删除头尾的情况下的最小值 这样我们就能枚举最后一次删的是哪个点了 #include<iostream> #include<algorithm> #include<cstdio 阅读全文
posted @ 2020-02-18 16:22 朝暮不思 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 我们知道一个的是0,因此先初始化两个长度的时候 之后运用区间dp的思想,如果s[l]和s[r]满足是一对,那么先由内部更新 之后我们枚举断点,计算相加的情况 #include<iostream> #include<algorithm> #include<cstdio> #include<cmath> 阅读全文
posted @ 2020-02-18 15:57 朝暮不思 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 本题是一个思维题,我们想到,如果一个边左右两侧的点都超过k个,那么他就可以用交集,不然的话就没有交集,因为会有一遍没法k个 #include<iostream> #include<algorithm> #include<cstdio> #include<cmath> #include<vector> 阅读全文
posted @ 2020-02-18 11:21 朝暮不思 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 本题最关键的就是dfs序,这跟之前有一道求父节点中的节点个数很像,我们对这个树进行dfs,记录他开始的节点和最终的节点,这样只要在两个点之间做dfs就行了 首先这不会破坏树的结构,其次,他还表示了每个节点间的相对关系,这是一种很常见的树状数组的技巧 本篇代码需要用c++交,如果想用g++,需要把ve 阅读全文
posted @ 2020-02-17 22:38 朝暮不思 阅读(118) 评论(0) 推荐(0) 编辑
上一页 1 ··· 57 58 59 60 61 62 63 64 65 ··· 68 下一页