数据范围有误?
查看原帖
数据范围有误?
379058
Ginger_he楼主2022/10/25 13:56
#include<bits/stdc++.h>
using namespace std;
#define N 105
int n,k,x,a,b,p[N],f[N][2],res,ans;
bool vis[N];
int main()
{
	scanf("%d%d",&n,&k);
	for(int i=1;i<=n;i++)
	{
		scanf("%d",&x);
		if(x>100)
			while(1);
		p[x]++;
	}
	if(!k)
	{
		for(int i=1;i<=100;i++)
		{
			if(p[i])
				ans++;
		}
	}
	else
	{
		for(int i=1;i<=min(100,k);i++)
		{
			memset(f,0,sizeof(f));
			f[i][1]=res=p[i];
			for(int j=i+k;j<=100;j+=k)
			{
				f[j][0]=max(f[j-k][0],f[j-k][1]);
				f[j][1]=f[j-k][0]+p[j];
				res=max(f[j][0],f[j][1]);
			}
			ans+=res;
		}
	}
	printf("%d\n",ans);
	return 0;
}

题目中说 ai100a_i\le100,但是这代码 TLE 了

2022/10/25 13:56
加载中...