题目大意:
给出一个长度为n(n<=500000)数字串a,求这个串中严格递增的序列个数,序列长度可为1
分析:
什么鬼!上升序列??相比做的前两场的C题,这次的C题在题目类型上就比较温和了,毕竟是很熟悉的DP模型。不难想到,设
dp[i]
为以i为末尾的严格上升序列的个数。 转移就很容易想到了,
dp[i]=∑j=1i−1dp[j](a[j]<a[i])
,不炸完才怪咧 这种情况下,暂时不要放弃DP,考虑考虑优化是比较合理的。(当然,对于这道题似乎不用DP也有其他做法) 状态已经是一维,再压缩已不现实,考虑转移优化。 观察转移式,区间求和。。。赤裸裸地告诉你是线段树优化。 然而这个转移式还是有条件的,要求
a[j]<a[i]