翻卡片
做这套题的时候有一种很不优秀的做法,这里还是说一说:
把每个卡片抽象成两个点:$(A_i,B_i)$,$(B_i,A_i)$,一开始把$(A_i,B_i)$状态设置为”可用“,把$(B_i,A_i)$设置为”不可用“。那么每次操作$v$就相当于把左下角$(1,1)$、右上角$(v-1,v-1)$的矩形内的点状态取反,左下角$(1,v)$,右上角$(v,MaxV)$的矩形内的点全部把状态设置为不可用,左下角$(v,1)$,右上角$(MaxV,v)$的矩形内的点全部把状态设置为可用。画个图就明白了。
由于是二维在线的,不会写树套树只能写K-Dtree,而且还没有调对。然而结果说明这种做法比暴力好不到哪去……
题解很详细,这里直接搬过来:
代码里采用的是zkw线段树。
1 |
|