摘要: 代码 //maxn是点的最大个数,首先init,然后用G加边,接下来调用dfs(根,1),ST(节点个数), //GetLca(u,v)用于查询两点的lca typedef pair<int,int> par; struct LCA { int id,ver[maxn*2],deep[maxn*2] 阅读全文
posted @ 2016-08-09 20:35 wust_ouyangli 阅读(263) 评论(0) 推荐(0) 编辑
摘要: 题意中文我就不说了 解析: 分块+可持久化Trie,先得到前缀异或值,插入到Trie中,然后分块,对每一块,处理出dp[i][j](i代表第几块,j代表第几个位置),dp[i][j]代表以第i块开始的到j这个位置 的连续字串最大异或值。查询时,如果l,r不在同一块内,可以先查询l所在的块的后一个块到 阅读全文
posted @ 2016-08-09 10:28 wust_ouyangli 阅读(136) 评论(0) 推荐(0) 编辑