-
个人简介
实时更新一下蒟蒻的OI学习日记:
才写,都给我写!!!!!
注意一点不要写在函数传参里!!!
可持久化太舒服了!!!!
LCT!!
常用:
#include<bits/stdc++.h>//其实并不常用,通常都分开写,但有的时候分开写真的烦 #define ll long long #define il inline #define cit const int #define cll const long long #define vd void #define bl bool #define N 100010 //视题目要求 #define F(k) for(int i=1;i<=k;i++) //通常都直接用这一个,下面那个很少 //#define up(i,a,b) for(int i=a;i<=b;i++) #define W(l) for(int i=h[l];i!=0;i=e[i].D)//图论的玩意,遍历链式前向星 #define mid(l,r) (l+r>>1) #define Z (k<<1)//线段树 #define Y (k<<1|1) #define ln(p) write(p),putchar(10)//带换行的输出数字 #define Cp(p) write(p),putchar(32)//带空格的输出数字 //#define int long long //过不了的时候会用,所以main函数通常都是signed using namespace std;//事实上可以不用 il ll read(){ ll x=0; bool w=1; char ch=getchar(); while(ch<48||ch>57){ if(ch==45) w=0; ch=getchar(); }while(ch>47&&ch<58){ x=(x<<3)+(x<<1)+(ch^48); ch=getchar(); } return w?x:(-x); } il vd write(ll x){ if(x<0){ putchar(45); x=-x; } if(x>9) write(x/10); putchar(x%10+48); } signed main(){ return 0; }
蒻了,更新!!!
struct tree{ int fa,son[2]; bl rev; ll v,xr; tree(){fa=son[0]=son[1]=v=xr=rev=0;} }t[N]; struct LCT{ tree t[N]; int st[N],tp; il bl Froot(int k){return t[t[k].fa].son[0]==k||t[t[k].fa].son[1]==k;} il bl get(int k){return (k==t[t[k].fa].son[1]);} il vd pushup(int k){ t[k].xr=t[t[k].son[0]].xr^t[t[k].son[1]].xr^t[k].v; } il vd rever(int k){ swap(t[k].son[0],t[k].son[1]); t[k].rev^=1; } il vd pushdown(int k){ if(t[k].rev){ if(t[k].son[0]) rever(t[k].son[0]); if(t[k].son[1]) rever(t[k].son[1]); t[k].rev=0; } } il vd rotate(int k){ int f=t[k].fa,ff=t[f].fa; bl fson=get(f),kson=get(k); t[k].fa=ff; if(Froot(f)) t[ff].son[fson]=k; t[t[k].son[kson^1]].fa=f,t[f].son[kson]=t[k].son[kson^1]; t[f].fa=k,t[k].son[kson^1]=f; pushup(f),pushup(k); } il vd splay(int k){ st[tp=1]=k; int x=k; while(Froot(x)) x=t[x].fa,st[++tp]=x; while(tp) pushdown(st[tp--]); while(Froot(k)){ int f=t[k].fa; if(!Froot(f)) rotate(k); else if(get(f)==get(k)) rotate(f),rotate(k); else rotate(k),rotate(k); } pushup(k); } il vd access(int k){ for(int i=0;k;i=k,k=t[k].fa){ splay(k); t[k].son[1]=i; pushup(k); } } il vd makeroot(int k){ access(k); splay(k); rever(k); } il int findroot(int k){ access(k); splay(k); while(t[k].son[0]){ pushdown(k); k=t[k].son[0]; } splay(k); return k; } il vd split(int k,int f){ makeroot(k); access(f); splay(f); } il vd link(int k,int f){ makeroot(k); if(findroot(f)!=k) t[k].fa=f; } il vd cut(int k,int f){ split(k,f); if(t[f].son[0]==k&&!t[k].son[1]){ t[f].son[0]=0; t[k].fa=0; } } }lct;
-
通过的题目
- P1
- P2
- P3
- P4
- P5
- P6
- P7
- P8
- P9
- P10
- P11
- P12
- P13
- P14
- P15
- P16
- P17
- P18
- P19
- P20
- P21
- P22
- P23
- P24
- P25
- P26
- P27
- P28
- P29
- P30
- P31
- P32
- P33
- P34
- P35
- P36
- P37
- P38
- P39
- P40
- P41
- P42
- P43
- P44
- P45
- P46
- P47
- P48
- P49
- P50
- P51
- P52
- P53
- P54
- P55
- P56
- P57
- P58
- P59
- P60
- P61
- P62
- P63
- P64
- P65
- P66
- P67
- P68
- P69
- P70
- P71
- P72
- P73
- P74
- P75
- P76
- P77
- P78
- P79
- P80
- P81
- P82
- P83
- P84
- P85
- P86
- P87
- P88
- P89
- P90
- P91
- P92
- P93
- P94
- P95
- P96
- P97
- P98
- P99
- P100
- P101
- P102
- P103
- P104
- P105
- P106
- P107
- P108
- P109
- P110
- P111
- P112
- P113
- P114
- P115
- P116
- P117
- P118
- P119
- P120
- P121
- P122
- P123
- P124
- P125
- P126
- P127
- P128
- P129
- P130
- P131
- P132
- P134
- P135
- P136
- P137
- P138
- P139
- P140
- P141
- P142
- P144
- P145
- P146
- P147
- P148
- P149
- P150
- P151
- P152
- P153
- P154
- P155
- P156
- P157
- P158
- P159
- P160
- P161
- P162
- P163
- P164
- P165
- P166
- P167
- P168
- P169
- P170
- P171
- P172
- P173
- P174
- P175
- P176
- P177
- P178
- P179
- P180
- P181
- P182
- P183
- P184
- P185
- P186
- P187
- P188
- P189
- P190
- P191
- P192
- P193
- P194
- P195
- P196
- P197
- P198
- P199
- P200
- P201
- P202
- P203
- P204
- P205
- P206
- P207
- P208
- P209
- P210
- P211
- P212
- P213
- P215
- P216
- P217
- P218
- P219
- P220
- P221
- P222
- P223
- P224
- P225
- P226
- P227
- P228
- P229
- P230
- P231
- P232
- P233
- P234
- P235
- P236
- P237
- P238
- P240
- P241
- P242
- P243
- P244
- P245
- P246
- P247
- P248
- P249
- P250
- P251
- P252
- P253
- P254
- P255
- P256
- P257
- P258
- P259
- P260
- P261
- P262
- P263
- P264
- P265
- P266
- P267
- P268
- P269
- P270
- P282
- P315
- P347
- P365
- P379
- P386
- P467
- P484
- P485
- P499
- P502
- P548
- P569
- P594
- P623
- P624
- P628
- P652
- P653
- P667
- P668
- P669
- P670
- P678
- P679
- P681
- P682
- P683
- P684
- P685
- P687
- P688
- P695
- P696
- P719
- P720
- P728
- P729
- P752
- P782
- P832
- P833
- P834
- P836
- P838
- P853
- P859
- P860
- P866
- P875
- P880
- P889
- P892
- P893
- P894
- P895
- P896
- P897
- P905
- P906
- P909
- P914
- P915
- P918
- P919
- P933
-
最近活动
题目标签
- 初窥门径
- 150
- 略有小成
- 89
- 循环结构
- 75
- 顺序结构
- 56
- 分支结构
- 45
- 字符串
- 45
- 驾轻就熟
- 36
- 循环嵌套
- 35
- 一维数组
- 23
- 二维数组
- 23
- 融会贯通
- 14
- 电子学会一级
- 9
- 数据结构
- 8
- 模拟
- 7
- 蓝桥杯
- 6
- while循环
- 6
- 电子学会考级
- 5
- 其他
- 4
- for循环
- 4
- 电子学会二级
- 3