摘要: 给你一个数,在一段区间内找到另一个数,使得他们的异或最大; trie树上存储每个数的二进制位,查询时贪心查询能让当前高位取得1的位置; 实际上是一个求前缀和的思想。每个数都开一个trie树浪费空间,当前建树的时候基本是转移前面的树; 首先设当前二进制位为d,将前一棵树的d^1直接转移(因为以后也用不 阅读全文
posted @ 2019-10-31 07:40 AiRomance 阅读(406) 评论(0) 推荐(0) 编辑
摘要: P1270 “访问”美术馆 dfs读入,存图有点像线段树; 在枚举时间时,要减去走这条边的代价; #include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int maxn=1010; stru 阅读全文
posted @ 2019-10-31 07:28 AiRomance 阅读(133) 评论(0) 推荐(0) 编辑
摘要: P1099 树网的核 无根树,在直径上找到一条长度不超过s的路径,使得最远的点距离这条路径的距离最短; 首先两遍dfs找到直径(第二次找的时候一定要吧father[]清零) 在找到的直径下枚举长度不超过s的链,ans的下界是直径两端点到这条链距离的最小值; 然后将直径上的点都标记,再次求一下别的点到 阅读全文
posted @ 2019-10-31 07:23 AiRomance 阅读(204) 评论(0) 推荐(0) 编辑