根号分治
200815147
这个作者很懒,什么都没留下…
展开
-
51nod 1597 有限背包计数问题 DP 根号分治
题解: 考虑根号分治。 对于体积≤n\le\sqrt n≤n的东西,发现背包可以用一个前缀和优化。 对于体积&gt;n&gt;\sqrt n>n的东西,实际上每个物品都可以看做有无限个 ,就是求把某个数分成若干份,每份都至少为n+1\sqrt n+1n+1的方案数,由于分成的份数不会超过n\sqrt nn,所以用一个简单的DP就行了。 代码: #include<...原创 2018-11-05 21:55:37 · 303 阅读 · 0 评论 -
[LOJ]#2838. 「JOISC 2018 Day 3」比太郎的聚会 根号分治
Solution 以后不会做题还是要考虑根号分治啊…… 对于给出点数≥n\ge\sqrt n≥n,直接O(n)O(n)O(n)DP; 对于给出点数&lt;n&lt;\sqrt n<n,可以预处理:对于每个点,预处理出离他最远的n\sqrt nn个点,然后更新时可以归并一下,询问时直接查就可以了。 Code #include<bits/stdc++.h> us...原创 2019-03-03 19:37:48 · 448 阅读 · 0 评论