求助QAQ
查看原帖
求助QAQ
745576
wangzile楼主2022/7/21 16:00

哪位大佬帮我看看,这个为什么会显示编译错误啊?我编译时没问题啊QAQ

#include<bits/stdc++.h>
using namespace std;

double size(int x,int y,int x1,int y1)
{
	int a1,a2;
	a1=(x-x1)*(x-x1);
	a2=(y-y1)*(y-y1);
	return sqrt(a1+a2);
}

int n,x,y,x1,y1,a[101][101],s[101];
double m=-1,r[101];

double maxr(int xx)
{
	for(int i=1;i<=n;i++)
	{
		if(i!=xx&&s[i]==1&&r[i]>size(a[i][1],a[i][2],a[xx][1],a[xx][2]))
		{
			return 0;
		}	
	}
	double s1,ans=min(min(abs(a[xx][1]-x),abs(a[xx][1]-x1)),min(abs(a[xx][2]-y),abs(a[xx][2]-y1)));
	for(int i=1;i<=n;i++)
	{
		if(i!=xx&&s[i]==1)
		{
			s1=size(a[i][1],a[i][2],a[xx][1],a[xx][2])-r[i];
			ans=min(ans,s1);
		}
	}
	return ans;
}

void dfs(int xx,double res)
{
	if(xx>=n)
	{
		m=max(m,res);
		return ;
	}
	for(int i=1;i<=n;i++)
	{
		if(s[i]==0)
		{
			r[i]=maxr(i);
			s[i]=1;
			dfs(xx+1,res+3.1415926*r[i]*r[i]);
			s[i]=0;
			r[i]=0;
		}
	}	
}

int main()
{
	cin>>n>>x>>y>>x1>>y1;
	int s;
	s=abs(x-x1)*abs(y-y1);
	for(int i=1;i<=n;i++)
	{
		cin>>a[i][1]>>a[i][2];
	}
	dfs(0,0);
	int ans=round(s-m);
	cout<<ans<<endl;
    return 0;
}
2022/7/21 16:00
加载中...