洛谷上几篇题解的代码提交到USACO网站,都超时
查看原帖
洛谷上几篇题解的代码提交到USACO网站,都超时
520626
louding楼主2023/10/8 12:20

我的代码思路和题解几乎一样,但提交到USACO网站上过不了,洛谷也过不了(最后一个点超时)。后来我试了洛谷上几篇题解的代码提交到USACO网站,都一样超时。(提交到洛谷我不敢,我怕被棕)

附代码:

#include<bits/stdc++.h>
using namespace std;
int a[120000],n;
int minans()
{
	if(a[n-2]-a[0]==n-2&&a[n-1]-a[n-2]>2)//special case
	{
		return 2;
	}
	if(a[n-1]-a[1]==n-2&&a[1]-a[0]>2)
	{
		return 2;
	}
	int tmp=0;//number of points in the range i~j
	for(int i=0;i<n;++i)
	{
		if(i%100==0)
		cerr<<i<<endl;
		int j=0;
		while(j<n-1&&a[j+1]-a[i]<=n-1)
		++j;
		tmp=max(tmp,j-i+1);
	}
	return n-tmp;
}
int maxans()
{
	return max(a[n-2]-a[0],a[n-1]-a[1])-n+2;//total length-places occupied
}
int main()
{
	//freopen("herding.in","r",stdin);
   // freopen("herding.out","w",stdout);

	scanf("%d",&n);
	for(int i=0;i<n;++i)
	scanf("%d",&a[i]);
	sort(a,a+n);
	printf("%d\n%d",minans(),maxans());
}
2023/10/8 12:20
加载中...