根号分治
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 · 292 阅读 · 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 · 437 阅读 · 0 评论