题目:https://loj.ac/problem/2291 想了线段树合并的做法.就是用线段树维护 trie 的每个点在各种时间的操作. 然后线段树合并一番,线段树维护前缀最大值,就是维护最大子段和的套路,记录区间和.前缀 max .查询的时候,因为当前区间只记录了自己区间内部的前缀 max 值,所以要加一个 pr 表示该区间前面的区间和. 空间可能爆? RE 就没管.后来发现是 go[ ][ ] 开成 N 而非 M 了.这个做法还是可过的. 注意强制在线的 ans 是带绝对值的.注意 mx…
ref 我是傻逼,我啥也不会,这是我抄的. #include <iostream> #include <cstring> #include <cstdio> using namespace std; int n, a, b, w[55], tot, dy[1005], g[55][55], f[55][55][55][55], va[55]; bool isAll(int i, int j, int l, int r){ for(int k=i; k<=j; k+…
#2508. 「AHOI / HNOI2018」游戏 题目描述 一次小 G 和小 H 在玩寻宝游戏,有 nnn 个房间排成一列,编号为 1,2,…,n,相邻房间之间都有 111 道门.其中一部分门上有锁(因此需要对应的钥匙才能开门),其余的门都能直接打开. 现在小 G 告诉了小 H 每把锁的钥匙在哪个房间里(每把锁有且只有一把钥匙),并作出 ppp 次指示:第 iii 次让小 H 从第 SiS_iSi 个房间出发,去第 TiT_iTi 个房间寻宝.但是小 G 有时会故意在指令里放入死…