摘要: 题意 给你$n$个可能有依赖关系的物品,物品的价值为$v_i$,重量为$w_i$,背包大小为$m$,要使装的物品价值最大。 做法 如果确保这些依赖关系一定是棵树的话,那么我们就可以愉快地进行树形dp。 这里复习一下树形dp:这里设$dp[u][j]$表示以$u$为根的子树中装了重量为$j$的最大价值 阅读全文
posted @ 2019-06-01 14:52 Garen-Wang 阅读(166) 评论(0) 推荐(0) 编辑
摘要: P2425 小红帽的回文数 暴力枚举转换进制这个是人都会。但是只有40pts。 其实有这么个规律:对于$x$,在$x+1$进制下肯定是回文数,之后也是,因为只有一位。所以只需要枚举到$x+1$为止。但是没什么用。 我们考虑优化其中一部分进制。 当进制小于$\sqrt{a_i}$时,会有很多位,而大于 阅读全文
posted @ 2019-06-01 14:51 Garen-Wang 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 题目意思很清楚,求树上两条路径是否相交。 乱模拟就可以发现规律:当一条路径的lca在另外一条路径上的时候,这两条路径相交。 证明方法从题解的讨论里面看来的“浮尘ij”dalao摘过来: 可以反证,(不考虑两个lca相同的情况)两个lca到交点各有一条路径,他们到根节点又各有一条路径,出现环,矛盾。 阅读全文
posted @ 2019-06-01 14:43 Garen-Wang 阅读(226) 评论(0) 推荐(0) 编辑
摘要: 神仙dp题。 先做一个贪心的排序:吃得慢的先去打饭。即按b从大到小排序。 接下来再做dp: 我们可以这么定义状态:$dp[i][j][k]$表示前$i$个人,第一队的人打饭用了$j$时间,第二队的人打饭用了$k$时间,再吃完饭的最少时间。 但是这样开的数组是$200 \times 40000 \ti 阅读全文
posted @ 2019-06-01 14:42 Garen-Wang 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 这道题可以作为最优比率背包问题的模板题了。好像属于01分数规划。 我们这里用二分答案的方法解决。 题目要我们求$\frac{\sum{t}}{\sum{w}}$的最大值。 我们设答案为$ans$,则$ans \leq \frac{\sum{t}}{\sum{w}}$。 化简一下就得到: $$\sum 阅读全文
posted @ 2019-06-01 14:42 Garen-Wang 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 这是一道可怕的概率dp。 如果$n=1$,那么胜率100%。 如果$n=2$,可以暴力算出答案。 如果$n=3$,可以发现,当淘汰了其中的某个人的时候,局面就会变成$n=2$的其中一个局面! 所以我们按$n$从小到大递推,可以逐步算出答案。 具体看看我抄过来的代码8: 最后的答案就是$dp[n][i 阅读全文
posted @ 2019-06-01 14:41 Garen-Wang 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 左偏树什么的已经忘记啦,但是平板电视是忘不掉的。 我们只需要来这么一下: 用一个冰茶姬维护集合,每次从所在集合拿出最大元素。然后启发式合并,新数添加回去,冰茶姬维护一下即可。 就这么简单。。。 同时注意一下:平板电视里面堆的join操作是把别人的join到我这里来! 代码: cpp include 阅读全文
posted @ 2019-06-01 14:40 Garen-Wang 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 刚学OI的时候觉得难得要死。现在看…… 因为我们不知道谁是罪犯和今天是星期几,所以我们全都枚举一下,然后判定答案。 这样思路是不是就很显然了? 先处理下证词那些字符串。然后对每个答案进行判定。判定出说谎人数不符合或又说真话又说假话等情况,就直接判false。 然后对于每一个人,只需要有一天满足是凶手 阅读全文
posted @ 2019-06-01 14:39 Garen-Wang 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 第一道博弈论的题目。有点目瞪口呆哦! 本来想打了0骗下分的,结果全部WA??? ~~翻开题解~~发现这家伙是不会输的。。。 我们来看看这道博弈论。 我们是先走的,根据贪心思想,一定先拿走默契度最高的两个武将其中之一。 而计算机是个铁头娃,他只会把剩下的被我们拿到后默契度最高的武将连抢带ban。 所以 阅读全文
posted @ 2019-06-01 14:39 Garen-Wang 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 题目乍一看很难做啊!你怎么找出一个xor和大于0的来啊? 好像没有固定算法啊! 那就不要用固定算法,用随机算法啊!(欺负那些脑子不灵通的蒟蒻,比如我) 做法很简单,在每一行都随机一个数,拿来xor,如果可以的话就输出,不能的话就继续找,找到快超时还没找到就直接判无解。 想不到8!我想不到! 代码: 阅读全文
posted @ 2019-06-01 14:38 Garen-Wang 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 又是一道不会的CF题。。。 好吧这道题我是真的不知道。如果有弄明白的小可爱请多多指教qwq 代码: cpp include using std::cin; using std::cout; using std::endl; const int maxn = 300005; const int INF 阅读全文
posted @ 2019-06-01 14:38 Garen-Wang 阅读(114) 评论(0) 推荐(0) 编辑