题解: 考虑用线段树维护楼的最大值,然后这个问题就很简单了。 每次可以向左二分出比x高的第一个楼a,同理也可以向右二分出另一个楼b,如果a,b都存在,答案就是b-a-1。 注意到二分是可以直接在线段树上进行的,所以复杂度是O(nlogn)。 当然这里是用分块做的,更暴力一些。 ...
分类:
其他好文 时间:
2017-08-16 19:09:52
阅读次数:
191
题目描述: Find the contiguous subarray within an array (containing at least one number) which has the largest sum. For example, given the array [-2,1,-3,4 ...
分类:
其他好文 时间:
2017-08-16 15:18:27
阅读次数:
119
题目链接:http://poj.org/problem?id=3903 题目大意:LIS的nlog(n)写法。 解题思路:dp[i]:=长度为i的最长递增子序列的末尾元素最小值。那么由于dp[i]形成了一个有序的序列,所以可以采用二分的办法。 dp[j] = a[i] dp[j] <= a[j] < ...
分类:
其他好文 时间:
2017-08-15 21:11:34
阅读次数:
150
题目 http://acm.hdu.edu.cn/showproblem.php?pid=6110 分析 注意到,若干条路径的交一定也是条路径 我们可以维护一个线段树,seg[l..r]存着第l条~第r条路径的交(用起点和终点表示即可) 维护的时候就是两个孩子对应的路径求个交作为自己的交 询问的时候 ...
分类:
其他好文 时间:
2017-08-14 21:24:43
阅读次数:
117
引入 可能有不少OIer都知道FFT这个神奇的算法, 通过一系列玄学的变化就可以在 $O(nlog(n))$ 的总时间复杂度内计算出两个向量的卷积(或者多项式乘法/高精度乘法), 而代码量却非常小. 博主一年半前曾经因COGS的一道叫做"神秘的常数 $\pi$"的题目而去学习过FFT, 但是基本就是 ...
分类:
其他好文 时间:
2017-08-13 20:52:23
阅读次数:
157
解题关键:观察发现答案可进行二分,二分答案,将大于等于答案的数记为1,小于的记为0,从而可以使用线段树的区间赋值和区间求和解决。 复杂度:$O(nlog^2n)$ ...
分类:
编程语言 时间:
2017-08-11 22:08:38
阅读次数:
199
/*标记1-N中1出现的次数。例如,当N等于18时,1出现的次数为2 + 9 = 11 个位数出现1的为:1,11,十位数出现1的为10-18*/public class OneNoInN { // 暴力解法 public static int solution1(int num) { // 异常处 ...
分类:
其他好文 时间:
2017-08-10 22:37:37
阅读次数:
197
题意:初始q为空,给出排列p,每次取p中两个相邻的元素插入到q的开头,问q能得到的最小字典序为?n<=2e5.开头尽量小,假设最后一次取出的元素位置为[i,j].则ij之间有偶数个元素,i前面有偶数个元素,j类似.i,j奇偶性相反.i必须在某个奇数位置上,j必须在某个偶数位置上,RMQ维护奇/偶位置 ...
分类:
其他好文 时间:
2017-08-07 11:42:56
阅读次数:
119
Best Cow Fences Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 11175 Accepted: 3666 Description Farmer John's farm consists of a long row ...
分类:
其他好文 时间:
2017-08-06 16:01:21
阅读次数:
156