Orac and Models CodeForces

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
typedef long long ll;
#define int long long
const int N = 200000+10;
int a[N];
bool st[N];
int dp[N];
void solve()
{
	int n;
	cin>>n;
	for(int i=1; i<=n; i++)
		cin>>a[i];
	for(int i=1;i<=n;i++)
		dp[i]=1;
    //直接枚举接在哪个后面 
	for(int i=1;i<=n;i++)
		for(int j=i;j<=n;j+=i)
			if(a[j]>a[i])
				dp[j]=max(dp[j],dp[i]+1);
	int ans=0;
	for(int i=1;i<=n;i++)
		ans=max(ans,dp[i]);
	cout<<ans<<endl;
}
signed main()
{

	int t;
	cin>>t;
	while(t--)
		solve();
	return 0;
}
原文地址:https://www.cnblogs.com/QingyuYYYYY/p/12882035.html