0
已解决
刘乐宸
新手天翼
新手天翼
#include<iostream>
#include<cstring>
#include<cmath>
#include<string>
#include<cstdio>
using namespace std;
int a[40005],f[40005],d,n,x;
int dfs(int i){
if(f[i]!=-1)return f[i];
int mx=-1;
for(int j=1;j<=i-1;j++){
if(a[j]/a[i]==d)
mx=max(mx,dfs(j));
}
if(mx==-1){
f[i]=1;
return 1;
}
else{
f[i]=mx+1;
return mx+1;
}
}
int main()
{
memset(f,-1,sizeof(f));
int mxz=-1;
cin>>n>>d;
for(int i=1;i<=n;i++)
cin>>a[i];
for(int i=1;i<=n;i++)
mxz=max(mxz,dfs(i));
cout<<mxz;
return 0;
}
60分