題意……我還用說麼……oi有史以來最毒瘤資料結構題……
只能說精神低落的時候來上一發,真是神清氣爽,完全忘了自己的抑鬱症……說實在的,做這道題之前我抑鬱症又犯了,但做完這道題,抑鬱症是什麼?
這個效果大概就是我說的這個東西:
抑鬱症患者表示忘記了自殺的念頭,忘記了自己沒有妹子的事實,忘記了各種催淚番的悲慘結局,忘記了四月是你的謊言,忘記了白色相簿2,忘記了秒速5厘公尺,忘記了未聞花名,忘記了clannad,忘記了日在校園(滑稽),忘記了零使**原結局,忘記了fsn天天講的「不可能每個人都幸福」,忘記了各種電視劇集的悲劇結局,忘記了各種村上式結局,忘記了社會的陰暗面,只看見了人生的美好……
1 #include2 #include3 #include4 #include5cogs339using
namespace
std;
6const
int inf=0x3f3f3f3f;7
int n,m,cnt,c[500010];8
struct
node
920 }*root,*min,*max,*p;
21void pushdown(node *x)
2231
if(x->dk)
3238
if(x->rev)
3950}51
void update(node *x)
5274
else
if(x->ch[1])t=x->v+max(0,x->ch[1]->lsum);
75 x->lsum=t;
76if(x->ch[1
])77
81else
if(x->ch[0])t=x->v+max(0,x->ch[0]->rsum);
82 x->rsum=t;83}
84void zig(node *x)
8595
void zag(node *x)
96105
void splay(node *x, node *f)
106121
}122 node* find(node *x, int
k)123
132 node* get(int k, int
v)133
142void ins(node *t)
143149 node* build(int l, int
r)150
159 tmp->ch[1]=build(mid+1,r),tmp->ch[1]->pa=tmp;
160update(tmp);
161return
tmp;
162}
163int
haha()
164177 scanf("
%d%d
",&n,&m);
178226 tmp=find(root->ch[0],pos-1);t=find(root->ch[0],pos+tot);
227splay(tmp,root);splay(t,tmp);
228 printf("
%d\n
",t->ch[0]->totsum);
229break
;230
case'm
':231if(s[2]=='k'
)232
241splay(min,root);splay(max,min);
242 pushdown(max->ch[0
]);243 printf("
%d\n
",max->ch[0]->maxsum);
244}
245}
246}
247}
248int sb=haha();
249int main()
NOI 2005 維修數列
noi 2005 維修數列 典型的伸展樹模板題 參考 include include include include include using namespace std define key value ch ch root 1 0 const int maxn 500010 const int...
BZOJ 1500, 維修數列
傳送門 編寫乙個支援插入 刪除 修改 翻轉 求和以及求和最大子串行的資料結構。splay無疑。但是寫太醜也是會tle的,比方說插入的時候應該以建樹的形式插入,而不是乙個點乙個點的形式。實現起來要注意的細節很多,對練習打splay挺有好處。陸陸續續除錯了好多天,總算在崩潰之前ac了 include c...
BZOJ 1500 維修數列
time limit 10 sec memory limit 64 mb submit 14433 solved 4701 submit status discuss 輸入的第1 行包含兩個數n 和m m 20 000 n 表示初始時數列中數的個數,m表示要進行的運算元目。第2行包含n個數字,描述初...