题意:dp[n] = ∑ ( dp[n-i]*a[i] )+a[n], ( 1 <= i < n) cdq分治。 计算出dp[l ~ mid]后,dp[l ~ mid]与a[1 ~ r-l]做卷积运算。 1 #include <bits/stdc++.h> 2 using namespace std ...
分类:
其他好文 时间:
2016-10-06 00:11:47
阅读次数:
186
楼教主男人八题也又一题是和这题一样,n个有标号点能构成的简单无向连通图数,不过这题题目数据大很多。 ...
分类:
其他好文 时间:
2016-10-03 23:15:03
阅读次数:
222
这篇会理论上讲一讲常用的数据结构维护手法。 我是嘴巴选手我自豪! ①cdq分治 现在我们有一些修改,有一些询问,修改之间独立。 我们考虑分治,对于左右两半分别分治,然后对于左边的修改计算对右边询问的贡献。 本身的复杂度是O(nlogn)。 ②整体二分 现在我们有一些修改,有一些询问。 我们需要求出,... ...
分类:
其他好文 时间:
2016-10-02 15:01:53
阅读次数:
161
题目大概说,对于1到n这n个数的任何一个排列A可以这样计算其价值:对所有下标i找到最小的j满足j>i且A[j]>A[i],然后i和j之间连边,最后所有连通块个数之积的平方就是该排列的价值。问所有排列的价值和是多少。 ...
分类:
其他好文 时间:
2016-09-28 22:18:07
阅读次数:
231
题目大概说已知连续i(1<=i<=n)个贝壳组合成一段项链的方案数a[i],求组合成包含n个贝壳的项链的总方案数。 ...
分类:
系统相关 时间:
2016-09-19 19:48:55
阅读次数:
403
1176: [Balkan2007]Mokia Description 维护一个W*W的矩阵,初始值均为S.每次操作可以增加某格子的权值,或询问某子矩阵的总权值.修改操作数M<=160000,询问数Q<=10000,W<=2000000. 维护一个W*W的矩阵,初始值均为S.每次操作可以增加某格子的 ...
分类:
其他好文 时间:
2016-09-11 20:18:24
阅读次数:
208
题目链接:http://acm.neu.edu.cn/hustoj/problem.php?id=1702 题目大意:就是问每个人三个属性同时不低于另外几个人。。。。人不分先后 经典的三维偏序问题 解题思路:CDQ分治练手题 CDQ分治就是将前半截对后半截的影响拿出来,把偏序问题降维。 三维的经过一 ...
分类:
其他好文 时间:
2016-09-05 21:04:31
阅读次数:
413
课件链接 CDQ分治 [BOI2007]MOKIA 题意:一个2000000*2000000的棋盘,每个格子有一个数,维护两种操作: ADD x, y: a A[x, y] += a; QUERY x0, y0, x1, y1: 询问矩阵内的和。 CDQ分治时按x维排序使用扫描线,y维使用树状数组。 ...
分类:
其他好文 时间:
2016-08-24 17:22:50
阅读次数:
127
关于CDQ分治,首先需要明白分治的复杂度。 T(n) = 2T(n/2)+O(kn), T(n) = O(knlogn) T(n) = 2T(n/2)+O(knlogn), T(n) = O(knlog^2n) T(n) = 2T(n/2)+O(k), T(n) = O(kn) 那么我们要处理[l, ...
分类:
其他好文 时间:
2016-08-24 01:08:01
阅读次数:
205
题意: 简化就是有两种操作,一种是插入(x,y,z)这个坐标,第二种是查询(x1,y1,z1)到(x2,y2,z2)(x1<=x2,y1<=y2,z1<=z2)的长方体包含多少个点。 解析: 将查询分成8个点,离线做,离散化z值,两次CDQ,第一次归并排x值,第二次归并排y值,z值用bit树维护更新 ...
分类:
其他好文 时间:
2016-08-15 14:21:50
阅读次数:
156