前缀和
文章平均质量分 62
TA201314
这个作者很懒,什么都没留下…
展开
-
最小和[CODEVS1635]解题报告
题面:输出长度为N的数列中区间和绝对值最小的绝对值,若有多个最小区间和绝对值,则输出其可能的最长长度。N 思路:把区间转换成前缀和,区间绝对值最小其实就是前缀和之差的绝对值最小,所以我们将其排序即可,相差最小的区间一定出现在排序后相邻的两个前缀和之中。 但是还要注意一些问题: ①若有多个区间的值相同,则应将他们再按端点排序,然后选择端点相差最大的两个。 ②循环边界和更新条件需要仔细揣摩。原创 2014-11-05 16:44:39 · 819 阅读 · 0 评论 -
借教室[NOIP2012]解题报告
思路一:O(mlogn) 裸的线段树,维护最小值和区间修改;由于是第一次写线段树,所以不太会写。 代码: #include using namespace std; #include #include #include #include char * ptr=new char[50000000]; int tree[2500000],lazy[250000原创 2014-11-05 16:45:35 · 2237 阅读 · 1 评论 -
[NOI2010]超级钢琴 解题报告
超级钢琴 【问题描述】 小Z是一个小有名气的钢琴家,最近C博士送给了小Z一架超级钢琴,小Z希望能够用这架钢琴创作出世界上最美妙的音乐。 这架超级钢琴可以弹奏出n个音符,编号为1至n。第i个音符的美妙度为Ai,其中Ai可正可负。 一个“超级和弦”由若干个编号连续的音符组成,包含的音符个数不少于L且不多于R。我们定义超级和弦的美妙度为其包含的所有音符的美妙度之和。两个超级和弦被认为是相同的原创 2015-01-17 14:09:16 · 1969 阅读 · 2 评论 -
[HNOI2004]打鼹鼠 解题报告
这个题一上来就想到了是O(M2)O(M^2)的DP,但是没有想到优化,导致跑得比较慢。 当然其实对于这个题而言优化有无是无所谓的,但是这个优化的思想还是很好的。 我一开始是想得用前面的去更新后面的,而如果我们反着来想的话,就可以发现一个优化了。 设fif_i表示最后到i可以取得的最大数量,那么显然有方程fi=max{fj+1,1≤j<i | |xi−xj|+|yi−yj原创 2015-04-06 21:25:13 · 996 阅读 · 0 评论 -
[POI2000]啤酒厂选址
这道题思路很简单,但是有很多蛋疼的细节需要注意。 一个比较笨的方法是从0到n-1扫描,把环分成两段,一段是顺时针走来的,一段是逆时针走来的,它们在当前所选的啤酒厂处相交,然后维护一下这两段。那么实际上我们是在维护这两段的权重、长度和裂开点。但是注意到这两段都是可以为空的,甚至在转移的时候还可能出现负数,不过实际上这都是没有关系的! 上一中方法实现需要辅以链表,一个更好的方法是展环为链,这样的话原创 2015-04-17 07:45:22 · 5206 阅读 · 1 评论 -
树上操作 解题报告
两种操作: 1.输入X,s,t,对于链s-t,设上面的点为v1,..,kv_{1,..,k},给viv_i加上iXRiiXR^i。 2.输入s,t,询问链s-t的权值和,对100711433取模。 所有操作1的R相同,在一开始会给出。 所以操作1在操作2之后出现,操作1有U个,操作2有Q个。 1≤n,Q,U≤105,1≤R,X≤1091\le n,Q,U\le 10^5,1\le R,X原创 2015-07-10 16:40:37 · 899 阅读 · 0 评论 -
[cqoi2015]选数 解题报告
本题的性质在于,如果选了两个数,那么这两个数的最大公约数至大为H-L。(所以需要特判只选了一个数的情况) 先来看一下傻逼的做法: 考虑莫比乌斯反演,i*K对答案的贡献是μ(i)∗N⌊HiK⌋−⌊L−1iK⌋\mu (i)*N^{\lfloor {H \over iK}\rfloor - \lfloor {L-1 \over iK} \rfloor},对于所有数相同的情况,我们记一下每个数被多算了原创 2016-03-23 15:39:26 · 1230 阅读 · 0 评论 -
[bzoj3744]Gty的妹子序列 解题报告
比较显然的做法是用bit维护做到O(nlog−−−√n)O(n\sqrt \log n)。 但是。。作为一名理论计算机科学家傻逼,我们需要O(nn√)O(n\sqrt n)的做法,注意到如果我们把(i,ai)(i,a_i)看成点,实际上要求O(1)O(1)询问一个矩形内点的个数,这个显然可以用可持久化分块来搞,维护每个块内的前缀和和所有块的前缀和——但是空间复杂度是3nn√3n\sqrt n,ML原创 2016-04-26 07:22:08 · 865 阅读 · 0 评论 -
关于树状数组一些有意思的东西
嘛~最近刚刚学会树状数组,写个blog记录一下心得。树状数组呢,核心是一个叫lowbit的东西,lowbit(x)=x&-x=x的最后一位1的大小。 一、一个经典问题 一个初始值为0的k位计数器,要求支持n次+1操作。时间复杂度? 经典解法: 法I:考虑第i位的改变次数,可得O(∑k−1i=0n2i)≤O(∑∞i=0n2i)=O(n)O(\sum_{i=0}^{k-1}{n\over 2^原创 2016-04-28 09:23:32 · 2249 阅读 · 0 评论