长度为n, 有多少长度为 cnt 的递增子序列。
#include <iostream>
using namespace std;
const int N = 110;
int t[N];
int dp[N][N];
int n, cnt;
int solve()
{
for (int i = 0; i < n; i ++)
dp[i][1] = 1;
for (int i = 0; i < n; i ++)
{
for (int j = i - 1; j >= 0; j --)
{
if(t[i] > t[j])
{
for (int k = 2; k <= cnt; k ++)
{
dp[i][k] += dp[j][k-1];
}
}
}
}
int sum = 0;
for (int i = 0; i < n; i ++) sum = sum + dp[i][cnt];
return sum;
}
int main()
{
cin >> n >> cnt;
for (int i = 0; i < n; i ++) cin >> t[i];
cout << solve();
return 0;
}