BZOJ
wsyorz
这个作者很懒,什么都没留下…
展开
-
BZOJ 4568 [Scoi2016]幸运数字
题目大意:给你一颗树,多个询问,问你树上任意两点的路径上选任意几个点使得异或和最大。我是参考的claris大神的代码(%%%),点分治,对于询问在两个子树间或者有一个在重心上的进行回答,否则把问题用链表接到询问点所在的子树上。 具体方法可以选中重心都对每个子树染色,染为这个子树的根节点。在子树处理问题之前一定要记住先把询问拖出来,然后把子树的问题清零。因为你选的是这个子树的重心开始分治,而不是根,原创 2016-05-20 07:59:55 · 737 阅读 · 0 评论 -
BZOJ 3529 [Sdoi2014]数表
神题。。。 假设先不看a的限制,设g(i)为最大公约数为i的数对个数,f(i)为i的约数和,显然有ans=∑f(i)g(i)ans = \sum f(i)g(i),而g(i)=∑i|dμ(di)⌊nd⌋⌊md⌋g(i) = \sum_{i|d}^{} μ(\frac{d}{i})\left \lfloor \frac{n}{d} \right \rfloor\left \lfloor \frac{原创 2016-05-19 08:24:30 · 297 阅读 · 0 评论 -
BZOJ 4046 [Cerc2014] Pork barre
题目大意:给你一堆边,询问边权在[a,b]的范围内的能加入的最大边数使图无环的情况下使边权和最小,点1000,边100000,询问1000000把边先按边权排序,我们再来思考这个问题。 先想一下简化版,假设所有询问的左端点相同,那么问题是不是就简单一些了?左端点固定,从这个点开始跑最小生成树,相当于只选最小生成树的边。对于第i条边,权值为Ci,如果在最小生成树上,那么对答案的贡献就是Ci,如果不在原创 2016-05-23 18:18:33 · 401 阅读 · 0 评论 -
BZOJ 1031
把字符串复制一遍,用后缀数组排序,按顺序输出sa[i]#include#include#include#include#include#include#define N 200010using namespace std;char s[N];int r[N], sa[N], n;namespace Get_Suffix{ int wa[N], wb[N], ws[N]原创 2016-04-28 08:44:01 · 262 阅读 · 0 评论