题意:
带修改区间k小值;
n,m
a[i]
题解:
听说是道裸题就过来刷刷 (卧槽我最近似乎都是在刷裸题);
写完前缀和的主席树感觉挺厉害,感受了一下树状数组就来写这题;
然后写更新的的时候我就不会了;
前缀和的时候,后一个树从前一个继承一部分结点而来的;
但是树状数组不能这么搞啊= =;
然后发现暴力建就可以了,也是犯二了;
最多n+m次修改,每次修改lo...
分类:
其他好文 时间:
2015-07-24 16:14:03
阅读次数:
144
一道非常有价值的题。
【解析1】欧几里德算法求乘法逆元,前缀和
[Analysis]O(T n log n)。
[Sum]
①int运算,如果会超出界,第一个数前要加上(LL)即类型转换。
②gcd不变的欧几里德定理:可以是加,也可以是减。
[Code]/**********************************************************...
分类:
其他好文 时间:
2015-07-24 13:02:22
阅读次数:
106
D. Data CenterTime Limit: 20 SecMemory Limit: 256 MB题目连接http://codeforces.com/contest/560/problem/BDescriptionThe startup "Booble" has shown explosive...
分类:
编程语言 时间:
2015-07-23 19:36:37
阅读次数:
143
//hdu3415 Max Sum of Max-K-sub-sequence
//单调队列
//首先想到了预处理出前缀和利用s[i] - s[j]表示(j,i]段的和
//之后的问题就转换成了求一个最小的s[j]了,这样就可以单调队列
//求最小值。
//队列中维护的是区间的开始的位置j,我们插入队列中的是j-1,因为
//这个时候s[i] - s[j-1]刚好就是[j,i]段闭区间的和
/...
分类:
其他好文 时间:
2015-07-23 11:57:53
阅读次数:
130
题意:给你两个串,问你第二个串是从第一个串的什么位置开始完全匹配的? kmp裸题,复杂度O(n+m)。
当一个字符串以0为起始下标时,next[i]可以描述为"不为自身的最大首尾重复子串长度"。
当发生失配的情况下,j的新值next[j]取决于模式串中T[0 ~ j-1]中前缀和后缀相等部分的长度, 并且next[j]恰好等于这个最大长度。
防止超时,注意一些细节。。
另外:尽量少用str...
分类:
编程语言 时间:
2015-07-23 00:46:22
阅读次数:
141
为了彻底理解树状数组,试着用树状数组做了下普通平衡树而树状数组只能离线做,或者保证值的大小在数组可承受的范围内也是可以的,因为要求离线是因为必须事前对所有数离散化。然后我们看刘汝佳蓝书上的图利用如下代码,可以找到所有前缀和中第一个大于等于k的1 int kth(int k) {2 int a...
分类:
其他好文 时间:
2015-07-21 23:54:23
阅读次数:
216
题意:给一些带颜色的点,求一个最小的矩形,恰好包括一半的红色点,且不包括蓝色点。题解:暴力,求个二维前缀和,用容斥原理更新一下。N很小所以我采用了离散优化,跑了个0ms。之前没写过二维前缀和,加上离散写得也不是很熟练,所以搞了2个小时,好在是一发就过了。貌似有个坑,线不要特判,不然wa。#inclu...
分类:
其他好文 时间:
2015-07-21 20:14:53
阅读次数:
108
二分法+前缀和法律满足子序列长度的条件(0,n)之间,sum[x+i]-sum[i]从i元素开始序列长度x和。前缀和可在O(n)的时间内统计sum[i]的值。再用二分找出满足条件的最小的子序列长度。#include#include#include#include#include#include#in...
分类:
其他好文 时间:
2015-07-18 16:56:42
阅读次数:
116
题目链接:LightOJ 1295 Lighting System Desig
题意:给出n种灯(v,k,c,l)分别是灯的(电压,所需电源费用,灯的单价,所需灯的数量),电压高的灯可以代替电压低的灯但是电压低的灯不能代替电压高的等,每种灯的电压各种相同,问选n种灯最小的花费。
思路:
因为电压高的灯可以代替电压低的灯——按电压高到低排序,
然后求前缀和——因为当出现代替时可以,快速统计...
分类:
编程语言 时间:
2015-07-16 22:21:56
阅读次数:
148
一、树状数组
在解题过程中,我们有时需要维护一个数组的前缀和 S[i]=A[1]+A[2]+...+A[i] 。但是不难发现,如果我们修改了任意一个 A[i],S[i] 、 S[i+1]...S[n] 都会发生变化。可以说,每次修改 A[i] 后,调整前缀和 S[] 在最坏情况下会需要 O(n) 的时间。当 n 非常大时,程序会运行得非常缓慢。因此,这里我们引入“树状数组”,它的修改与求和都是...
分类:
编程语言 时间:
2015-07-16 22:15:40
阅读次数:
209