关于导弹拦截
  • 板块学术版
  • 楼主zhuxiaoran_AC
  • 当前回复6
  • 已保存回复6
  • 发布时间2022/3/17 20:31
  • 上次更新2023/10/28 06:22:02
查看原帖
关于导弹拦截
547996
zhuxiaoran_AC楼主2022/3/17 20:31

P1158 [NOIP2010 普及组] 导弹拦截 这道题不知道怎么一直显示超时......

#include<bits/stdc++.h>
using namespace std;
int n,a[100001],b[100001]; 
int main()
{
	int i,j,x,y,max2,x1,y1,x2,y2,r1,r2,min2,ans;
	cin>>x1>>y1>>x2>>y2; 
	cin>>n;
	for(i=1;i<=n;i++)
	{
		cin>>x>>y;
		a[i]=(x-x1)*(x-x1)+(y-y1)*(y-y1);
		b[i]= (x-x2)*(x-x2)+(y-y2)*(y-y2);
	}
	for(i=1;i<=n-1;i++)
	for(j=i+1;j<=n;j++)
	if(a[i]>a[j])
	{
		swap(a[i],a[j]);
		swap(b[i],b[j]);
	}
	min2=987654321; 
	for(i=n;i>=0;i--)
	{
		ans=a[i];
		max2=0;
		for(j=i+1;j<=n;j++) 
		if(b[j]>max2)
		max2=b[j];
		if(a[i]+max2<min2) 
		min2=a[i]+max2;
	}
	cout<<min2<<endl;
	return 0;
}

求大神看看!

2022/3/17 20:31
加载中...