2020年合肥初中第三小题
  • 板块学术版
  • 楼主EVAchj
  • 当前回复5
  • 已保存回复5
  • 发布时间2022/5/28 21:58
  • 上次更新2023/10/28 00:25:02
查看原帖
2020年合肥初中第三小题
549603
EVAchj楼主2022/5/28 21:58
#include<bits/stdc++.h>
using namespace std;
int main()
{
	freopen("number.in","r",stdin);
	freopen("number.out","w",stdout);
	int n,a[3000001],f[3000001],max1,i,j;
	cin>>n;
	for(i=1;i<=n;i++)
		cin>>a[i];
	sort(a+1,a+1+n);//最小到大排序,去掉后效性 
	f[1]=1;
	for(i=2;i<=n;i++)//从前向后填
	{
		max1=0; //以前i+1...<=n
		for(j=1;j<=i-1;j++)//合伙人:1..<=i-1
		if(a[i]%a[j]==0&&f[j]>max1) //合伙人:倍数关系,潜力最大 
		max1=f[j];
		f[i]=1+max1;//自己+max1 
	}
	max1=0;
	for(i=1;i<=n;i++)
		if(f[i]>max1) 
			max1=f[i];
	cout<<max1<<endl; 
	return 0;
}
2022/5/28 21:58
加载中...