【Codejam2008_Round1C】C:Increasing Speed Limits

来源:互联网 发布:淘宝b店入驻条件及费用 编辑:程序博客网 时间:2024/05/16 04:11

题目大意:

给出一个长度为n(n<=500000)数字串a,求这个串中严格递增的序列个数,序列长度可为1

分析:

什么鬼!上升序列??相比做的前两场的C题,这次的C题在题目类型上就比较温和了,毕竟是很熟悉的DP模型。不难想到,设dp[i]为以i为末尾的严格上升序列的个数。
转移就很容易想到了,

dp[i]=j=1i1dp[j](a[j]<a[i])
,不炸完才怪咧
这种情况下,暂时不要放弃DP,考虑考虑优化是比较合理的。(当然,对于这道题似乎不用DP也有其他做法)
状态已经是一维,再压缩已不现实,考虑转移优化。
观察转移式,区间求和。。。赤裸裸地告诉你是线段树优化。
然而这个转移式还是有条件的,要求a[j]<a[i]

原创粉丝点击