上一页 1 2 3 4 5 6 7 8 ··· 13 下一页
摘要: http://hihocoder.com/problemset/problem/1044 可以看出来每一位的选取只与前m位有关,我们把每个位置起始的前m位选取状态看出01序列,就可以作为一个数字来存储,那么将其作为状态,dp[i][j]就是第i个座位前m个座位选取情况为j的最大垃圾处理量。然后取这个 阅读全文
posted @ 2018-01-25 15:11 Luke_Ye 阅读(158) 评论(0) 推荐(0) 编辑
摘要: S(k)=A^1+A^2...+A^k. 保利求解就超时了,我们考虑一下当k为偶数的情况,A^1+A^2+A^3+A^4...+A^k,取其中前一半A^1+A^2...A^k/2,后一半提取公共矩阵A^k/2后可以发现也是前一半A^1+A^2...A^k/2。因此我们可以考虑只算其中一半,然后A^k 阅读全文
posted @ 2017-11-23 08:37 Luke_Ye 阅读(472) 评论(0) 推荐(0) 编辑
摘要: 按照以前两个字符串找两者的最长公共子串的思路类似,可以把所有串拼接到一起,这里为了避免讨论LCP跨越多个串需需要特别处理的问题用不同的字符把所有串隔开(因为char只有128位,和可能不够用,更推荐设置成某一特殊字符,在后缀数组初始化的时候在对其映射的int值做处理)。二分长度然后遍历Height, 阅读全文
posted @ 2017-11-23 08:26 Luke_Ye 阅读(228) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=2459 之前hihocoder那题可以算出最多重复次数,但是没有输出子串。一开始以为只要基于那个,每次更新答案的时候按SA更新子串起始位置和长度就好了,但实际发现那个解法在计算重复次数的时候并不会遍历每一个合法串( 阅读全文
posted @ 2017-11-13 09:55 Luke_Ye 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 印象里青岛赛这个板子挂了,可能有bug,作者懒得找了,慎用。 阅读全文
posted @ 2017-11-12 14:24 Luke_Ye 阅读(161) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=5985 作为队里负责动态规划的同学,做不出来好无奈啊。思考了一个下午,最好还是参考了别人的思想才写出来,数学啊!!! 这题随着K的增长,贡献的数值越来越少,所以只要K足够大(100左右就够了,一开始写30WA了), 阅读全文
posted @ 2017-10-29 19:56 Luke_Ye 阅读(491) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=2639 在背包的基础上维护一个size<=K的最大值集合,为什么维护K个就好了呢,因为如果当前状态有多余K个最优解,前K个就足够转移到下一状态并占满前K了,所以K个之后的都没必要维护。 阅读全文
posted @ 2017-10-27 20:15 Luke_Ye 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 思想是分割成三角形,然后求三角形的重心。那么多边形重心就是若干个三角形的重心带权求中心,可以用质点质心公式。 阅读全文
posted @ 2017-10-27 15:13 Luke_Ye 阅读(190) 评论(0) 推荐(0) 编辑
摘要: #include #include #include #include #include #include #include #include #include #include #define ll long long int #define eps 0.0001 #define fo1(s,e) for(ll i=s;i>t; while(t--){ long lon... 阅读全文
posted @ 2017-10-27 14:25 Luke_Ye 阅读(702) 评论(0) 推荐(0) 编辑
摘要: 整数划分变形,由2^k组成。 整数划分中一个节约内存的技巧,平时我们使用dp[i][j]维护用不大于j的数组合成i的方案数,所以必须dp[i-j][j]->dp[i][j]。这样就需要二位,如果用一维dp[i-j]->dp[i]就会导致重复选取的情况。其原因在于dp[i-j]在计算的过程已经把大于j 阅读全文
posted @ 2017-10-27 11:12 Luke_Ye 阅读(173) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 13 下一页