cogs339 維修數列

2022-03-27 02:51:30 字數 2016 閱讀 1946

題意……我還用說麼……oi有史以來最毒瘤資料結構題……

只能說精神低落的時候來上一發,真是神清氣爽,完全忘了自己的抑鬱症……說實在的,做這道題之前我抑鬱症又犯了,但做完這道題,抑鬱症是什麼?

這個效果大概就是我說的這個東西:

抑鬱症患者表示忘記了自殺的念頭,忘記了自己沒有妹子的事實,忘記了各種催淚番的悲慘結局,忘記了四月是你的謊言,忘記了白色相簿2,忘記了秒速5厘公尺,忘記了未聞花名,忘記了clannad,忘記了日在校園(滑稽),忘記了零使**原結局,忘記了fsn天天講的「不可能每個人都幸福」,忘記了各種電視劇集的悲劇結局,忘記了各種村上式結局,忘記了社會的陰暗面,只看見了人生的美好……

1 #include2 #include3 #include4 #include5

using

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()

cogs339

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個數字,描述初...