题解
2025-07-31 11:45:56
发布于:山东
3阅读
0回复
0点赞
题解
这道题在洛谷是一道绿题 题目传送门
为什么在这是黄题
AC Code
#include<bits/stdc++.h>
using namespace std;
const double P=3.1415926535;
int n,lft,rght,up,down;
bool book[10];
double r[10],sum;
int x[10],y[10];
double getDis(int xa,int ya,int xb,int yb){
return sqrt((xa-xb)*(xa-xb)+(yb-ya)*(yb-ya));
}
void dfs(int k,double S){
if(k>n){
sum=max(sum,S);
return;
}
for(int i=1;i<=n;i++){
if(!book[i]){
double tmp=x[i]-lft;
tmp=min(tmp,(double)rght-x[i]);
tmp=min(tmp,(double)up-y[i]);
tmp=min(tmp,(double)y[i]-down);
for(int j=1;j<=n;j++){
if(book[j]){
double dis=getDis(x[i],y[i],x[j],y[j]);
tmp=min(tmp,dis-r[j]);
}
}
if(tmp<0) tmp=0;
r[i]=tmp;
book[i]=true;
dfs(k****+P*r[i]*r[i]);
book[i]=false;
}
}
}
int main(){
cin>>n>>lft>>up>>rght>>down;
if(lft>rght)
swap(lft,rght);
if(up<down)
swap(up,down);
for(int i=1;i<=n;i++) cin>>x[i]>>y[i];
dfs(1,0);
cout<<(long long)((up-down)*(rght-lft)-sum+0.5);
return 0;
}
点个赞再走吧!>_<
这里空空如也
有帮助,赞一个