先来一个离线版本的线段树: 1 /* 2 ID:esxgx1 3 LANG:C++ 4 PROG:hdu4417 5 */ 6 #include 7 #include 8 #include 9 #include 10 using namespace std; 11 12 ...
分类:
其他好文 时间:
2014-07-26 01:10:16
阅读次数:
289
转载请注明出处:http://blog.csdn.net/u012860063题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1698Problem DescriptionIn the game of DotA, Pudge’s meat hook is...
分类:
其他好文 时间:
2014-07-26 00:59:16
阅读次数:
245
一開始实在是不知道怎么做,后来经过指导,猛然发现,仅仅须要记录某个区间内是否有值就可以。flag[i]:代表i区间内,共同拥有的蛋糕数量。放置蛋糕的时候非常好操作,单点更新。ip:老鼠当前的位置寻找吃哪一个蛋糕的时候:1,要寻找0-ip这个区间内,位置最大的一个蛋糕的位置,记为ll。2,要寻找ip-...
分类:
其他好文 时间:
2014-07-25 14:24:21
阅读次数:
231
使用线段树更新每段区间的奖(1,2,3),最后在统计整段区间的数和,基本线段树,果断1A啊
#include
#include
using namespace std;
#define N 100000
struct node{
int l,r,p;
}a[N*4];
int n;
void build(int left,int right,int i){
a[i].l=left...
分类:
其他好文 时间:
2014-07-24 23:26:23
阅读次数:
195
线段树,涉及到了区间更新,代码在Update和Query中均涉及到了更新,使得程序在时间上有所优化。 1 #include 2 #define mid(a,b) ((a+b)>>1) //宏定义中用到移位需要注意! 3 4 using namespace std; 5 6 struc...
分类:
其他好文 时间:
2014-07-24 21:38:22
阅读次数:
269
这个是去年遗留历史问题,之前思路混乱,搞了好多发都是WA,就没做了自从上次做了大白书上那个双重懒惰标记的题目,做这个就思路很清晰了跟上次大白上那个差不多,这个也是有一个sets标记,代表这个区间全部置为0或者1,没有置位的时候为-1还有个rev标记,代表翻转操作,0代表当前不翻,1代表当前翻要注意一...
分类:
其他好文 时间:
2014-07-24 09:50:13
阅读次数:
522
本来是想找一个二维线段树涉及懒惰标记的,一看这个题,区间修改,单点查询,以为是懒惰标记,敲到一半发现这二维线段树就不适合懒惰标记,你更新了某段的某列,但其实其他段的相应列也要打标记,但因为区间不一样,又不好打。。。也可能是我这是在套用一维线段树的思想,还有更好的二维线段树懒惰标记方法反正到现在我还没...
分类:
其他好文 时间:
2014-07-24 05:06:58
阅读次数:
211
题意很简单,求不是那么好求的,k很大 要操作很多次,所以不可能直接来的,印象中解决操作比较多无非线段树 循环节 矩阵 组合数等等吧,这道题目 也就只能多画画什么 的了
就以第一个案例为主吧 ,
3
1 2 3
k我们依据画的次数来自己定好了
下面的每个数表示这个位置的 数由最初的 数组num[]中多少个数加起来得到的
当k为0的时候呢,就是
1 1 1
k为1的时候呢
1 2...
分类:
其他好文 时间:
2014-07-23 22:32:17
阅读次数:
196