摘要: 最裸的求区间最大递增子序列,单点更新区间合并线段树,存下来当个模板吧 #include using namespace std;#define M ((L+R)>>1)#define lson rt(b))?(a):(b))#define min(a,b) (((a) M) return query(rson,ql,qr); int ans = 0,left = query(l... 阅读全文
posted @ 2013-12-14 23:41 acm_roll 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 有N个村庄,只要村庄没有被摧毁就可以相互联系,一个村庄可以通过村庄和其他村庄联系,敌人会摧毁某个特定的村庄,然后我放可以修复最近被摧毁的村庄,然后询问第k个村庄最多可以联系到几个村庄(包括自身)求最大连续值问题,线段树维护区间最大连续长度,然后区间合并。查询的时候累加左右两边的连续值即可,注意连续区间是否会断开。比较坑人的是这题是多组数据。。而且每个村庄可以被多次摧毁,此时不用更新标记但是要更新栈。。就为了这两个问题WA了超多次。。 1 #include 2 #include 3 4 #define M ((L+R)>>1) 5 #define lson rt<<1,L 阅读全文
posted @ 2013-12-14 23:38 acm_roll 阅读(223) 评论(0) 推荐(0) 编辑