其他——一类算法复合的方法(分块法)
文章平均质量分 80
_hehe_
这个作者很懒,什么都没留下…
展开
-
Codeforces Round #243 (Div. 1)——Sereja and Squares
我们考虑每一种x坐标,显然只有<= sqrt{N}个x坐标出现了> sqrt{N}次,我们称这些为大的,其他为小的。 我们先考虑大的x和其他x之间的答案,先O(sqrt{N})枚举一个大的坐标,然后for其他的每个点,这样可以根据x坐标的差算出正方形的边长,hash检查一下就能知道这个正方形是否存在。 之后考虑小的x和小的x之间的答案,注意到我们可以对每个横坐标直接平方for,这样只有(sqrt{N})^2 + (sqrt{N})^2 + ... + (sqrt{N})^2 = N^1.5的枚举量,之后也可原创 2014-04-29 22:58:00 · 1604 阅读 · 0 评论 -
Codeforces Round #243 (Div. 2)——Sereja and Table
首先给出联通块的定义:对于相邻(上下和左右)的相同的数字视为一个联通块 现给一个n*m的只有0和1的矩形和数字k,求出最小反转个数使得整体包括若干个矩形联通块(即每个联通块均是矩形)(1 ≤ n, m ≤ 100; 1 ≤ k ≤ 10) 如果最小次数比k大,输出-1原创 2014-04-28 20:27:20 · 1778 阅读 · 0 评论 -
项目管理
首先没有告诉Q的范围,默认它比较大吧。 称度大于sqrt(n)的点为重点,其余为轻点。由于度数最多为2*m,所以重点不超过2*sqrt(n)个。摘自博客 对于这个题目,过程中有两种明显的方法可以求解:1)每次需要更新一个点时候,直接将他所相邻的点都更新,查询的时候直接输出;2)每次更新一个点,只更新自己的值,查询的时候找到所有相邻的点求和输出 这两种方法都是与当前点的度有关的,如果点的度比较大,那么第一种方法更新就会很慢,第二种方法的查询很慢;反之,第一种方法更新就比较快,第二种方法的查询比较快。(第一种方原创 2014-07-30 15:07:33 · 1155 阅读 · 0 评论