60points,求助
  • 板块P1515 旅行
  • 楼主cjr2009
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/1/19 16:23
  • 上次更新2024/1/19 19:30:16
查看原帖
60points,求助
371086
cjr2009楼主2024/1/19 16:23
#include<bits/stdc++.h>
using namespace std;
int aa[100]={0,0,990,1010,1970,2030,2940,3060,3930,4060,4970,5030,5990,6010,7000};
int bb[7050];
int main()
{
	int a,b;
	cin>>a>>b;
	int n;
	cin>>n;
	for(int i=15;i<=n+14;i++)
	{
		cin>>aa[i];
	}
	sort(aa+1,aa+n+15);
//	for(int i=1;i<=n+14;i++)
//	{
//		cout<<i<<"   ";
//	}
//	cout<<endl;
//	for(int i=1;i<=n+14;i++)
//	{
//		cout<<aa[i]<<" ";
//	}
//	cout<<endl;
	for(int i=1;i<=n+14;i++)
	{
		bb[aa[i]]=-100000000;
	}
	bb[7000]=1;
	for(int i=n+14;i>=1;i--)
	{
//		for(int j=a;j<=b;j++)
//		{
//			if(aa[i]-j>=0)
//			{
//				bb[aa[i]-j]+=bb[aa[i]];
//			}
//		}
		for(int j=i-1;j>=1;j--)
		{
			if(aa[i]-aa[j]>=a&&aa[i]-aa[j]<=b)
			{
				bb[aa[j]]=max((bb[aa[i]]),bb[aa[j]]+bb[aa[i]]);
				//cout<<bb[aa[j]]<<" "<<i<<" "<<j<<endl;
			}
		}
	}
//	for(int i=0;i<=7000;i++)
//	{
//		if(bb[i]!=0)
//		{
//			cout<<i<<" "<<bb[i]<<endl;
//		}
//	}
	cout<<bb[0];
	return 0;
}
2024/1/19 16:23
加载中...