问题标题: 酷町堂:5098错哪了

1
0
已解决
贾志骜
贾志骜
新手光能
新手光能

#include <iostream>

using namespace std;

long long a[20005], f[20005], ans,k;

int main()

{

int n,p;

cin>>n>>p;

for(int i=1;i<=n;i++)

{

    cin>>a[i];

}

for(int i=1;i<=n;i++)

{

    f[i]=1;

if(a[i-1]*p==a[i]&&a[i]%a[i-1]==0)

f[i]=f[i-1]+1;

else

f[i]=1;

}

for(int i=1;i<=n;i++)

{

ans=max(f[i],ans);

//cout<<f[i]<<' ';

}

cout<<ans;

}

/*

100 7

491 593 465 172 422 504 560 48 809 447 282 440 848 343 100 969 788 871 432 712 55 285 69 953 151 650 895 761 16 801 792 731 443 980 70 125 619 918 806 348 788 667 541 937 313 138 791 520 373 924 60 356 264 253 799 56 230 673 313 926 334 708 750 462 501 640 659 514 611 728 376 656 885 990 325 38 820 309 625 287 826 436 608 752 865 568 747 934 994 248 250 291 100 266 72 474 31 171 343 132

输出2

*/

怎么改都不对

贾志骜在2020-07-29 11:15:54追加了内容
#include <iostream>
using namespace std;
int a[30005], f[30005], ans;
int main() 
{
    int n,p;
    cin>>n>>p;
    for(int i=1;i<=n;i++)
    {
    	cin>>a[i];
	}
	for(int i=2;i<=n;i++)
	{
		f[1]=1;
		if(a[i]-a[i-1]==p)
			f[i]=f[i-1]+1;
		else
			f[i]=1;
	}
	for(int i=1;i<=n;i++)
	{
		ans=max(f[i],ans);
		//cout<<f[i]<<' ';
	}
	cout<<ans;
}

顺便问下5097

贾志骜在2020-07-29 11:58:31追加了内容

有人不


0
已采纳
王泽宇
王泽宇
初级光能
初级光能
int dfs(int i) {
int mx=-1;
if(f[i]!=-1)
return f[i];
for(int j=1;j<i;j++)
if(a[i]==a[j]*p)
mx=max(mx,dfs(j));
if(mx==-1) {
f[i]=1;
return 1;
}
else {
f[i]=mx+1;
return mx+1;
}
}

一点小心意,如果还不会

 

王泽宇在2020-07-29 11:31:55追加了内容

这儿

向下翻

王泽宇在2020-07-29 12:21:56追加了内容

求采纳

0
赵逸凡
赵逸凡
初级启示者
初级启示者

等比数列你看差?那是等差数列。

我要回答