按照nlogn求lis的方法,把lis的状态压缩了,每次新加一个数就把它右边第一个数的位置置为0,然后把这个数加进去 一个需要注意的地方,如果前面都是0,那么状态s中代表0的位置不可以是1,因为这种情况下0不可以被算作是lis里的一位 /* dp[i][j][k]表示后面还有i位,前面的lis状态是j,要求lis长度为k的个数 */ #include<bits/stdc++.h> using namespace std; #define ll long long ll n,k,a[],dp[]…