给出一排神经病的编号1-n的某个排列
给出规则
一步能同时消除该数右边连续的小于该数的数
问几步能消到最后状态
在纸上试了试,觉得这个问题很有点像lis,但是苦于方法
突然看了一眼tags
单调队列
oh it is
可以把这些数字一个一个的加入单调队列中
同时记录每个数字被吃掉的场次
保持整个队列递减
策略如下
如果一个数进去没有弹出数,则这个数肯定是第一场就...
分类:
其他好文 时间:
2014-08-28 19:50:35
阅读次数:
218
题解上说这是DP+单调队列优化,我觉得这已经不算是DP了,只算是练习单调队列吧。设dp[i]表示以a[i]结尾的不超过m个的最大的子段和dp[i] = max(sum[i]-sum[i-k])1 2 #include 3 #include 4 #include 5 #define INF 0x...
分类:
其他好文 时间:
2014-08-24 23:33:43
阅读次数:
192
这道题是我斜率优化第一题,对此做一个纪念。首先进行一遍筛选,然后动态规划表达式很快就写出来了f(i)=min(f(i)+b[j+1]*a[i])然后就要进行斜率优化了,显然这里边所有东西都是单调的,所以只需要维护单调队列即可。cal函数计算的是斜率,具体看代码吧(参考别人),以后要多加练习。 1 #...
分类:
其他好文 时间:
2014-08-23 16:35:21
阅读次数:
229
思路1.
当前为n的面积如何与n-1相联系,dp[i][j]=max(dp[i-1][k]) , 0<k<=j
描述:i为方块个数,j为高度
但是此题目的数据对于高度太变态,h,1000000000 ,n,100000
所以不可行(一般计算机为Ghz 相当于1S十几亿运算)
思路2.
此题目寻找的最大面积,对于一个方块来说则是以自己为中心左右两端比自己高
的方块累计和与自己面积的乘积,取最大值。状态转移则可看作已知前面n-1个左边比自己
高的的位置l[i],则如果该下标对应的数据比自己还高,继续往下找。利...
分类:
其他好文 时间:
2014-08-10 13:09:30
阅读次数:
278
本题就是一题LIS(最长递增子序列)的问题。本题要求求最长递增子序列和最长递减子序列。
dp的解法是O(n*n),这个应该大家都知道,不过本题应该超时了。
因为有O(nlgn)的解法。
但是由于本题的数据特殊性,故此本题可以利用这个特殊性加速到O(n)的解法,其中的底层思想是counting sort分段的思想。就是如果你不会counting sort的话,就很难想出这种优化的算法了。
...
分类:
其他好文 时间:
2014-08-09 23:18:49
阅读次数:
393
这题一看 就知道 是 完全背包和多重背包的结合题目了;对于买东西的是多重背包,商店是完全背包;这里要用到背包的初始化问题,因为求最小,所以初值要尽量大,大于所有可能的最大值;值得一提的是背包上限是20000,不是读入的T;用两个数组分别记录需要用到的最少货币数,一维就够用了;多重的单调队列好难不懂....
分类:
其他好文 时间:
2014-08-06 22:42:02
阅读次数:
331
http://poj.org/problem?id=1742题意:很多硬币,有价值和数量,给出一个上限,问上限内有多少种钱数可以由这些硬币组成。分析:好像是楼教主男人八题之一。然后学多重背包单调队列优化时看了别人的程序。。所以后来写了就1A了=。=前一篇小小总结了一下多重背包单调队列优化(http:...
分类:
其他好文 时间:
2014-08-06 18:10:41
阅读次数:
209
DescriptionAn array of size n ≤ 106 is given to you. There is a sliding window of size k which is moving from the very left of the array to the very r...
分类:
其他好文 时间:
2014-08-05 22:20:13
阅读次数:
1475
一道裸的单调队列,求区间最值问题。线段树8秒多过,单调队列4秒多过。可作为单调队列的学习题目...
分类:
其他好文 时间:
2014-08-05 09:42:39
阅读次数:
495
POJ2823Sliding WindowTime Limit: 12000MSMemory Limit: 65536KTotal Submissions: 38342Accepted: 11359Case Time Limit: 5000MSDescriptionAn array of size ...