B. Orac and Models:题目
题意:找一个最长的串,后一个下标可以整除前一个,并且a[i]<a[i+1]
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
vector<int> a((int)6e5);
vector<int> b((int)6e5), c((int)6e5);
int dp[(int)5e5];
int main()
{int t;cin>>t;while (t--){int n;cin>>n;for (int i=1;i<=n;i++){cin>>a[i];dp[i] = 1;}for (int i=1;i<=n;i++){for (int j=2;j*i<=n;j++){if (a[i*j]>a[i]) dp[j*i] = max(dp[i*j],dp[i]+1);}}int res =0;for (int i=1;i<=n;i++){res = max(res,dp[i]);}cout<<res<<endl;}
}