我们可以想到一个dp方程:f[i][0]表示当前在i个栅栏的左端点,f[i][1]表示在右端点。 分两种情况: 第一种:假设现在要更新线段gh的左端点g,而它下来的路径被ef挡住了,那么必定是有ef来更新g。 为什么呢?因为其它点走到g必定要下落,比如说d到g,就相当于d到f再到g。 第二种:假设到 ...
分类:
其他好文 时间:
2016-11-01 13:52:51
阅读次数:
237
1551: Longest Increasing Subsequence Again Description Give you a numeric sequence. If you can demolish arbitrary amount of numbers, what is the lengt ...
分类:
其他好文 时间:
2016-08-22 12:18:10
阅读次数:
203
题目链接: FZu Problem 2236 第十四个目标 题目描述: 给出一个n个数的序列,问这个序列内严格递增序列有多少个?不要求连续 解题思路: 又遇到了用线段树来优化dp的题目,线段树节点里面保存所表达区间里面的方案数。先离散化序列(升序排列),建树,然后按照没有sort前的顺序向线段树里面 ...
分类:
其他好文 时间:
2016-05-16 12:48:28
阅读次数:
163
题目链接:hdu 4521 本是 dp 的变形,却能用线段树,感觉好强大。 由于 n 有 10^5,用普通的 dp,算法时间复杂度为 O(n2),肯定会超时。所以用线段树进行优化。线段树维护的是区间内包含某点的最大满足条件的长度,叶子节点以该元素结尾,最长长度。至于相邻两项隔 d 个位置,求...
分类:
其他好文 时间:
2015-10-08 00:34:46
阅读次数:
169
题目链接:codeforces 573B题目大意:给出n个连续塔,每个塔有高度hih_i,每次取走最外层的块,问需要多少次操作能够拿光所有的块。题目分析:
首先我们可以知道第一次操作时,对于每个塔的变化满足如下的公式:hi=min(hi?1,hi?1,hi+1)h_i =min ( h_{i-1} , h_i -1 , h_{i+1})
每次操作都满足如下的递推式,我们递推一下得到第k次操作第i的塔...
分类:
其他好文 时间:
2015-09-10 13:15:14
阅读次数:
166
Dividing the Path
Time Limit: 1000MS
Memory Limit: 65536K
Total Submissions: 3798
Accepted: 1363
Description
Farmer John's cows have discovered that the clover grow...
分类:
其他好文 时间:
2015-08-29 09:50:26
阅读次数:
289
【CF 474E】Pillars离散化+线段树dp大半夜写出来了。。。好长好长好长好长好挫……先把高度排序离散化 我又开了个哈希数组用来查某点对应离散后的点 然后遍历每个点时二分出满足题意的区间(1~h-d)(h+d~max) 然后线段树查两个区间当前最大长度的序列 累计到当前点对应的树内点 同时更新他的父亲点们的最大长度 再把之前最大长度的末尾作为当前点的前驱 如果没有就用当前点自己做前驱 最后输...
分类:
其他好文 时间:
2015-08-17 01:02:32
阅读次数:
126
题目链接:点击打开链接
题目大意:给出n个数,m次操作,有两种操作,0 l r 询问[l,r]内的一个序列最大和为多少,要求该序列的相邻的位置奇偶性不同,可以不连续;1 k x将第k个位置的数换位x
因为只要求奇偶性不同,所以一个序列的最大值有四种情况,偶数开始偶数结束,偶数开始奇数结束,奇数开始偶数奇数,奇数开始奇数结束。可以用一个数组表示,0表示偶数,1表示奇数,那么a[0][0],a[0...
分类:
其他好文 时间:
2015-07-28 21:06:18
阅读次数:
113
ACDream 1101 瑶瑶想要玩滑梯 线段树...
分类:
其他好文 时间:
2015-07-03 17:27:35
阅读次数:
177