题目:http://poj.org/problem?id=1019 解: 预处理出$cnt(i)$为$S_i$的长度,$S(i)$为$cnt(i)$的前缀和,这样的话,对于一个坐标n,得到一个长度为n的字符串,我们可以将之分为$S_1,S_2....S_{k-1}$和不一定完整的$S_k$。二分$S ...
分类:
其他好文 时间:
2016-07-24 16:16:10
阅读次数:
274
题目大概说给一个n*m个格子,格子'.'表示可以放东西,多次询问矩形区域(x1,y1)-(x2,y2)有几种放一张1*2的骨牌的方案数。 分别考虑横着竖着放,预处理出二维的前缀和,即sum[x][y]表示(1,1)-(x,y)的横着或者竖着放的方案数,然后对于每一个询问就拆成几个前缀和容斥一下。。 ...
分类:
其他好文 时间:
2016-07-24 10:31:04
阅读次数:
474
题目链接 正经解法: 给定n个点的坐标,找一个点,到其他点的曼哈顿距离之和最小。n可以是100000。大概要一个O(nlogn)的算法。算欧几里得距离可以把x和y分开计算排好序后计算前缀和就可以在O(1)时间内判断一个点到其他点的距离。 缩小范围法: 另外一种做法,当时我就是这么想的,但是后来没敢交 ...
分类:
其他好文 时间:
2016-07-23 00:50:02
阅读次数:
428
http://www.lydsy.com/JudgeOnline/problem.php?id=1177 前缀和优化,时间复杂度$O(nm)$ 因为数据不全,快速读入会导致RE,切记! APIO的题目~ ...
wirelss: 简单暴力。后来老师提了一下,可以用矩阵前缀和来算,解决数据范围过大的情况,然而这道题数据范围并不大... road: 存正反向边,分别dfs,bfs。然而我脑抽的在搜反向边是搜了不可走路径...直接从终点开始搜多么简单...以及多次死循环,原因在于忘记i++或者q=next[q], ...
分类:
其他好文 时间:
2016-07-21 23:35:52
阅读次数:
179
bzoj1303[CQOI2009]中位数图 题意: 给出1~n的一个排列,统计该排列有多少个长度为奇数的连续子序列的中位数是b。 题解: 首先将数组中所有小于b的数置为-1,等于的置为0,大于的置为1。然后对b及其右边的数的前缀和(b的位置到该位置所有数的和)出现个数建一个数组r,对b左边的数的每 ...
分类:
其他好文 时间:
2016-07-21 21:45:16
阅读次数:
204
看到一系列前缀++和后缀++和cout的东西,首先我要说的是,这根cout运算符没什么关系,可以试下printf是一样的。 有一点原则是:首先要计算后面的,原因跟汇编有关。所以函数的入口参数都是从右边算到左边。 就像c++的构造函数的:初始化,其实先初始化的是最右边的变量。 先说几个例子: int ...
分类:
其他好文 时间:
2016-07-21 14:37:10
阅读次数:
102
bzoj1218[HNOI2003]激光炸弹 题意: 坐标系上有n个目标,每个目标有一个价值,现在求一个边与坐标轴平行,边长为R的正方形,使在其内部(原题是不包括边界,然而实际上不是这样)的目标价值最大。 题解: 预处理一下以横纵坐标为节点的二维前缀和,然后枚举正方形右上角坐标即可。注意可以将坐标系 ...
分类:
其他好文 时间:
2016-07-20 21:24:11
阅读次数:
188
bzoj1452[JSOI2009]Count 题意: n*m矩阵,支持两个操作,修改某个格子权值和查询某个子矩阵特定权值出现次数。n,m≤300,权值为1到100的整数。 题解: 原来二维前缀和也可以用树状数组维护,只要那个不断增加/减少lowbit的循环再嵌套一层就行了。同时因为权值是1到100 ...
分类:
Web程序 时间:
2016-07-20 21:10:21
阅读次数:
281
http://www.lydsy.com/JudgeOnline/problem.php?id=1202 记s[i]=a[1]+a[2]+...+a[i],即s[i]为前缀和。再令v[i]=s[f[i]]-s[i],其中f[i]为i的父亲。对于每个读入的x,y,k,将x,y视为结点,如果x与y的根结 ...
分类:
其他好文 时间:
2016-07-18 13:39:46
阅读次数:
176