关于玩梗的力量
  • 板块灌水区
  • 楼主HiCode2009
  • 当前回复14
  • 已保存回复14
  • 发布时间2022/8/23 11:00
  • 上次更新2023/10/27 14:04:01
查看原帖
关于玩梗的力量
636849
HiCode2009楼主2022/8/23 11:00

rt,就是CF1108这题,原来我是这么写的:

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int n;
	cin>>n;
	int d[n],em[10001]={0};
	for(int i=0;i<=n-1;i++) cin>>d[i];
	sort(d,d+n);
	cout<<d[n-1]<<" ";
	for(int i=0;i<=n-1;i++)
	{
		if(d[n-1]%d[i]==0&&em[d[i]]==0)
		{
			em[d[i]]=1;
			d[i]=-1;
		}
	}
	sort(d,d+n);
	cout<<d[n-1];
	return 0;
}

这种写法用时300ms,然后我为了把这个代码个性化,改成了这样:

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int n;
	cin>>n;
	int d[n],em[10001]={0};
	for(int i=0;i<=n-1;i++) cin>>d[i];
	sort(d,d+n);
	cout<<d[n-1]<<" ";
	for(int i=0;i<=n-1;i++)
	{
		if(d[n-1]%d[i]==0&&em[d[i]]==0)
		{
			em[d[i]]=1;
			d[i]=-14248;
		}
	}
	sort(d,d+n);
	cout<<d[n-1];
	return 0;
}

区别在于第16行的-1改成了-14248

这次只用了225ms,然后我就莫名其妙地成为了最优解……

求大佬们解释一下,这是什么情况?

2022/8/23 11:00
加载中...