pku3378专题

PKU3378 Crazy Thairs - 动态规划+树状数组

题目描述: 给定一个长度为N的数字序列{ai},问总共有多少个长度为5的上升子序列。(ai<10^9,N<=50000) 分析: 由于数字范围很大,首先将数字离散化为1~N之间的整数。原a[]数组转换为d[]数组,其中d[i]=j表示a[i]是a[]数组中第j小的数。 可以用动态规划来描述这个算法: p从0到N,令i=d[p]。f[i][k]表示以数字i为结尾,长度为k的上升序列的个数。