摘要: http://hi.baidu.com/myidea/item/142c5cd45901a51820e25039 阅读全文
posted @ 2013-08-16 21:47 沐阳 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 分块算法主要用于给定序列的区间询问问题,能够以较小的时间代价暴力求解,时间复杂度一般在O(n*n^0.5)。关键在O(1)维护好某一区间在增加或者减少一个边界元素所带来的影响。需要注意的就是在更新的区间的时候要先放大在缩小,否则可能出现当前区间左右边界互换的情况,这个影响某一些题可能没有影响,但是极有可能出错。时间复杂度:先考虑左边界的时间复杂度,由于分成了sqrt(n)块,而同一块中左标移动的范围最多是sqrt(n),那相邻块跳转的情况呢?可以虚拟出每块中有至少一个询问进行思考,那么相邻块之间的移动次数最大为2*sqrt(n)。由于共有Q次询问,因此最终时间复杂度为O(Q*sqrt(n))。 阅读全文
posted @ 2013-08-16 19:44 沐阳 阅读(1877) 评论(0) 推荐(0) 编辑
摘要: HDU-4676Sum Of Gcd题意:给定一个1-N的全排列序列,N同样的有, , , , , , , ,如果此时以为对任意一个因子的个数 t ,取C(2, t)就错了,且不说因子个数只有一个的数不能够成为公因子(例如, 等),就算成为公因子也未必是最大的公因子(例如等)。实际在统计的过程中不采用组合数的方式,而采用观察单个数带来的影响的方式。考虑到已知数 A 的因子 d 在区间其他数中出现了 k 次,那么如果 d 是所有gcd(A, other)的值时,那么最终的结果加上k*d,但这是不一定的,且 d 的因子肯定也是 A 的因子,当枚举到 d 的因子 d' 时显然就不能够加了。当 阅读全文
posted @ 2013-08-16 14:04 沐阳 阅读(441) 评论(0) 推荐(0) 编辑
摘要: test 阅读全文
posted @ 2013-08-16 13:35 沐阳 阅读(171) 评论(0) 推荐(0) 编辑