上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 27 下一页
摘要: 爆搜+剪枝 or 类似于区间dp的dp 先把题目中的条件转化成我们容易解决的。 首先当然是化环成链。做法就是开两倍的空间,然后枚举每一个点开始的情况。 (或者你用高深的膜法也可以啊) 这里提供两种方法,小菜鸡只会第一种。 法一:爆搜+剪枝 大体思路就是枚举现在已经切成了多少段,当切到$m$段了就停止 阅读全文
posted @ 2018-10-31 22:06 Garen-Wang 阅读(323) 评论(0) 推荐(0) 编辑
摘要: dp套spfa是最骚的qwq 首先要说明一点:这道题数据比较小,允许你用你觉得似乎过不了的复杂度过! 总体思路是这样的: 我们定义一个 数组表示第$i$天到第$j$天(闭区间)内的最短路,再定义 为前$i$天的最小代价。 那么就可以列出这么个柿子: $$dp[i]=max_{j=1}^{i 1}dp 阅读全文
posted @ 2018-10-31 21:49 Garen-Wang 阅读(99) 评论(0) 推荐(0) 编辑
摘要: 带权有向图上点不重复的最长路径 状压dp 来自仓鼠老师的话: 这题实际上就是带权有向图上点不重复的最长路径。从理论上来说,应该是个NP问题。 就是把每一句话设为一个点,然后可以$O(n^2)$的连边,怎么连边就不说了吧。。 设 为当前走到$i$点,已走的状态为$j$。然后就可以愉快地进行状压dp。 阅读全文
posted @ 2018-10-31 14:49 Garen-Wang 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 看题解看得快晕了 总体的思想是一种配对的思想,具体是这样的: 在初始魔板中选择一列来与终止状态的魔板的第一列配对,记录哪些行是没有互相对齐的。 因为对行我们是可以执行翻转的操作的,所以只需要依次判断后面的配对是否遵循前面的配对原则,如果违反了的话这种情况就无解。 直接写代码吧:(代码抄题解的) 一个 阅读全文
posted @ 2018-10-31 14:45 Garen-Wang 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 上一篇博客题目的普遍情况 这里跟前面那道题有点不同的地方是它的半径变得任意可变,并且给了一个初始的节点已经覆盖,并且最终的目的是让所有的叶子都覆盖。 做法跟上道题是类似的。 无根树还是变成有根树好,既然直接给了我们一个特殊点,那就直接拿它做根。 首先先dfs一下,判断哪些点是叶子,顺便统计出dep数 阅读全文
posted @ 2018-10-31 14:20 Garen-Wang 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 贪心:蓝书一道例题的特殊情况 这道题的初始化条件是一个消防站都没有,让你用最小的点去覆盖所有的点。每个点能覆盖的范围是2。 首先,无根树肯定转化为有根树,直接取1为根就好了。 这里有一个贪心的思想:每次我取出那个深度最大的没被覆盖的节点,要去覆盖它,我应该取那个节点? 取它自己会浪费一个半径,只取它 阅读全文
posted @ 2018-10-31 14:12 Garen-Wang 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 递推 or 数论+高精都可以解决的毒瘤题 这里就把两种方法都介绍下吧。 递推做法 设 为当前是$i$位数,最高位为$j$的方案数。 这里的思想是从左到右的填出来,只要$i 1$位的最高位比当前的最高位还高,那么就可以转移。 写成数学式就是$dp[i][j] = \sum_{k=j+1}^{limit 阅读全文
posted @ 2018-10-31 14:07 Garen-Wang 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 古老的dp好题 50分的做法是肯定能想出来的。设 表示当前走到$i$行$j$列,两人瓶子的容量分别为$k$和$l$,现在这一步是由谁走的。 但是显然数组开不下。转移也挺麻烦的。 满分做法: 直接把两人瓶子的容量合成一维就可以了。合并为两人容量的差值。 转移有一个问题:他们的差值可能是负的啊! 直接像 阅读全文
posted @ 2018-10-31 13:45 Garen-Wang 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 区间dp 或 树形dp的小题目 这道题我刚学OI的时候就看过,结果以为要暴力建出所有形态的树,其实还是太naive了啊! 因为给你的是中序遍历,而且还是有序的$1~n$,所以你可以随便枚举一个点做当前子树的根,那么左边的中序就是左子树了,右边同理。 这样写可以很方便地写一个记忆化搜索(不会递推),随 阅读全文
posted @ 2018-10-31 13:39 Garen-Wang 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 约数个数和 这里还是用到辣个公式: $$\sum_{i=1}^nd_1(i)=\sum_{i=1}^n\lfloor \frac{n}{i} \rfloor$$ 注意:这个公式对总体成立,对个体不成立! 所以你就有两种思路: 1. 转化为“余数求和”那种思路,使用除法分块来解决这打道题。 2. 直接 阅读全文
posted @ 2018-10-31 13:33 Garen-Wang 阅读(168) 评论(0) 推荐(0) 编辑
上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 27 下一页