今天咱家心情好,去2013年的题看了看,不幸的遇到了一道水题题目简述:给你一个长度为n的目标序列,你每次可以把某一个区间中所有的值加一,问最少需要多少次操作才可以把一个长度为n的0序列变成目标序列来看看这家伙,区间修改!我直接无脑打了个线段树模板,然而发现卵用没有,虽然网上有一些题解是贪心+线段树的...
分类:
其他好文 时间:
2015-09-13 23:00:45
阅读次数:
323
A Simple Problem with Integers Time Limit: 5000/1500 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Problem De...
分类:
编程语言 时间:
2015-09-09 01:00:06
阅读次数:
206
A Simple Problem with IntegersTime Limit:5000MSMemory Limit:131072KTotal Submissions:79137Accepted:24395Case Time Limit:2000MSDescriptionYou haveNinte...
分类:
其他好文 时间:
2015-09-08 21:36:21
阅读次数:
223
#include #include #include #include #include #include #include #define MAXN 100005int c[MAXN];int lowbit(int x){ return x&(-x);}void update(int x,i...
分类:
其他好文 时间:
2015-09-05 11:11:31
阅读次数:
149
树链剖分+线段树。线段树每个区间[l,r]维护:m:最大的负数s:所有数字绝对值的和d:正数的个数-负数的个数t:懒惰标记区间修改时,若最大的负数=0,则暴力递归,否则打标记。因为每个负数只会被暴力修改一次,所以时间复杂度为$O(n\log^2n)$。#include#define N 100010...
分类:
其他好文 时间:
2015-09-05 01:15:45
阅读次数:
292
题意:有一个矩阵,每次操作可以是编辑某个矩形区域,这个区域的0改为1,1改为0,每次查询只查询某一个点的值是0还是1。
??
思路:这道题和一般的树状数组有一点不同,这道题是区间修改,单点查询,而树状数组处理的是单点修改,所以我们可以改一下矩阵里的每一个值代表的意义。可以注意到我们只关注一个点被翻转了奇数次还是偶数次,令矩阵的元素a[i][j]表示矩形区域(1,1)到(i,j)的修改次数,这样...
分类:
编程语言 时间:
2015-08-29 20:19:56
阅读次数:
206
这里写代码片题意:有n个花瓶编号从0到n-1,初始花瓶都是空的,然后有两个操作,1 a b表示从位置a开始往后面找b(不够b个也可以)个空花瓶插花,输出插花的首位置和末位置,2 a b表示输出区间[a,b]有多少个花,并且把这个区间内所有花都拿走。
题解:很容易想到用线段树维护区间内有多少个空花瓶,然后操作2可以直接用普通的区间查询和区间修改,操作1可以看作先查询前a-1个花瓶有num个是空的,然...
分类:
其他好文 时间:
2015-08-29 00:55:24
阅读次数:
123
线段树(Segment Tree)是一种支持单点修改,区间求和,区间修改,区间求和的树形结构,在oi中有着十分广泛的应用。线段树,即每个节点保存一个区间(线段)的相关信息的数据结构,如下图就是一棵线段树(貌似大家都推荐用左开右闭的区间存储,但是个人习惯吧…)下面的内容包括建树(build)单点修改(...
分类:
其他好文 时间:
2015-08-28 15:35:04
阅读次数:
126
Just a HookTime Limit: 4000/2000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 23137Accepted Submission(s): 11600Probl...
分类:
其他好文 时间:
2015-08-25 23:40:01
阅读次数:
236
切割的话就split再merge,区间修改就splay然后lazy标记。 1 #include 2 #include 3 #include 4 using namespace std; 5 6 const int N = 300000; 7 int ans[N]; 8 int...
分类:
其他好文 时间:
2015-08-25 13:17:53
阅读次数:
183