- 博客(4)
- 收藏
- 关注
原创 BZOJ 4046 [Cerc2014] Pork barre
题目大意:给你一堆边,询问边权在[a,b]的范围内的能加入的最大边数使图无环的情况下使边权和最小,点1000,边100000,询问1000000把边先按边权排序,我们再来思考这个问题。 先想一下简化版,假设所有询问的左端点相同,那么问题是不是就简单一些了?左端点固定,从这个点开始跑最小生成树,相当于只选最小生成树的边。对于第i条边,权值为Ci,如果在最小生成树上,那么对答案的贡献就是Ci,如果不在
2016-05-23 18:18:33 398
原创 BZOJ 4568 [Scoi2016]幸运数字
题目大意:给你一颗树,多个询问,问你树上任意两点的路径上选任意几个点使得异或和最大。我是参考的claris大神的代码(%%%),点分治,对于询问在两个子树间或者有一个在重心上的进行回答,否则把问题用链表接到询问点所在的子树上。 具体方法可以选中重心都对每个子树染色,染为这个子树的根节点。在子树处理问题之前一定要记住先把询问拖出来,然后把子树的问题清零。因为你选的是这个子树的重心开始分治,而不是根,
2016-05-20 07:59:55 731
原创 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 291
原创 BZOJ 1031
把字符串复制一遍,用后缀数组排序,按顺序输出sa[i] #include #include #include #include #include #include #define N 200010 using 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 255
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人