2012年8月30日
摘要:
询问区间最大连续和,相同的只能算一次。可以不取,即为0线段树在线做不到,只好离线搞。一般最大连续和,都是以一个点为起点,往左或往右。其实,还可以以一个点为起点,往上最大是多少。用pos标记一个数之前更新到的位置。比如:-3 2 -3 1用线段树成段覆盖:(越下方越早更新到)1 1 1 1 -3 -32 2-3nowsum表示当前深度积累的总和。nowup表示当前深度从底往上的最大值。totsum,totup同理,表示的是以某个叶子为起点对应的值。加上读入优化,快了2s…… 1 #include<cstdio> 2 #include<cstring> 3 #include 阅读全文
posted @ 2012-08-30 18:08
DrunBee
阅读(710)
评论(0)
推荐(0)
摘要:
SPOJ……无力吐槽了,反正RP好的时候过了,其他时候都是TLE。只能怪自己动态树太龊了吧。。 1 #include<cstdio> 2 #include<cstring> 3 #include<queue> 4 #include<iostream> 5 #define MAX(a,b) ((a)>(b)?(a):(b)) 6 #define oo 0x7FFFFFFF 7 #define MAXN 200010 8 using namespace std; 9 bool vis[MAXN]; 10 int e, first[MAXN], 阅读全文
posted @ 2012-08-30 00:10
DrunBee
阅读(634)
评论(0)
推荐(0)
浙公网安备 33010602011771号