摘要: 这题很容易想到转移方程式,问题是我们发现第三维如果开2000,会炸 但是我们进一步发现,没必要开2000,因为总共就200个任务,所以背包容量和减少的量的差值最多-200-200 然后平移一下就是0-400.之后就是dfs转移,另外,double类型不要用memset转移 #include<bits 阅读全文
posted @ 2020-04-15 22:17 朝暮不思 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 这道题要求的是贡献的平均值。 直接计算挺难的,但是我们可以考虑按位枚举贡献,因为最多就30位,现在我们要知道的是,什么是贡献 首先一共有n*n种取法,也就是最后求出来的数要除以n方 那么我们分别来看三个函数的分子是什么,对于每一位,我们都枚举每个数当作右端点,之后寻找合法左端点就行了,这是常用的枚举 阅读全文
posted @ 2020-04-15 20:10 朝暮不思 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 对于数位dp,很多人有着不同的板子,我也曾经是使用递推板子,后来发现那种方法太过于灵活,对预处理的思维要求很高,因此在这里讲解一下我这种dfs的板子的通法 首先最简单的板子是f[][][],表示处理到了前i位,前缀的状态是什么,以及是不是当前位还是受限于最高位 受限的意思是,比如12345,当我们处 阅读全文
posted @ 2020-04-15 15:55 朝暮不思 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 根据题目的性质,他要求的子串没有和为0的情况,所谓子串,就是枚举任意一个左端点和右端点的串。我们知道子串的个数是(n+1)*n/2-1(是否为空) 显然超复杂度了,但是我们可以进一步想到,如果只枚举右端点,左端点根据题目的要求变化判断,这种双指针的复杂度,显然只有O(N) 我们又想到,一段区间的和, 阅读全文
posted @ 2020-04-15 14:10 朝暮不思 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 对于某一类构造题,我们先要找出不符合条件的情况输出-1 之后剩下的都是肯定有答案的 然后我们就开始做这道题目,首先一个想法我们肯定想保证如何不被覆盖 这样我们肯定是想每个点的涂的位置只向后移一位,这样至少一个位置不会被覆盖 但这样我们会发现有可能涂不满,因此我们再用新思路和他结合一下,我们会想到一个 阅读全文
posted @ 2020-04-15 08:48 朝暮不思 阅读(150) 评论(0) 推荐(0) 编辑