題目描述
在乙個長方形框子裡,最多有n(0≤n≤6)個相異的點,在其中任何乙個點上放乙個很小的油滴,那麼這個油滴會一直擴充套件,直到接觸到其他油滴或者框子的邊界。必須等乙個油滴擴充套件完畢才能放置下乙個油滴。那麼應該按照怎樣的順序在這n個點上放置油滴,才能使放置完畢後所有油滴佔據的總體積最大呢?(不同的油滴不會相互融合)
注:圓的面積公式v=pi*r*r,其中r為圓的半徑。
輸入輸出格式
輸入格式:
第1行乙個整數n。
第2行為長方形邊框乙個頂點及其對角頂點的座標,x,y,x』,y』。
接下去n行,每行兩個整數xi,yi,表示盒子的n個點的座標。
以上所有的資料都在[-1000,1000]內。
輸出格式:
一行,乙個整數,長方形盒子剩餘的最小空間(結果四捨五入輸出)
輸入輸出樣例
輸入樣例#1:
2 20 0 10 10
13 3
17 7
輸出樣例#1:
50題解
直接對每個點進行暴力搜尋
#include
#include
#include
#include
#include
using
namespace
std;
const
double pi=acos(-1);
double r[10],ans;
int n,xs,ys,xt,yt;
int x[10],y[10],mx[10];
bool flag[10];
inline
double dist(int x1,int y1,int x2,int y2)
inline
void ud()
inline
void dfs(int v)
dfs(v+1);
flag[i]=0;
}}int main()
dfs(1);
double tmp=(double)(xs-xt)*(double)(ys-yt);
if(tmp<0) tmp=-tmp;
ans=tmp-ans;
int anss=floor(ans);
if(double(ans-anss)>=0.5) anss++;
printf("%d\n",anss);
return
0;}
luogu P1378 油滴擴充套件
題面傳送門 這道題資料這麼小,一看就是搜尋,只是細節比較多。我們思考怎麼通過乙個點的半徑確定另乙個點的半徑。兩點的歐幾里得距離顯然是 x1 x2 2 y 1 y2 2 sqrt x1 x2 2 y1 y 2 2 那麼減去那個點的半徑d dd,那麼可得式子為 x1 x2 2 y 1 y2 2 d sq...
Luogu P1378 油滴擴充套件
這是一道很值得反思的題目 首先關於double的基本用法就非常不熟悉 int 0.0 double int轉化成double的方法 printf 0.lf 直接四捨五入輸出int 關於題目其實並不是個很難的題目 關鍵就是搜尋計算狀態 就是比較得出r的過程 特判乙個r不用出來的答案直接當0計算 inc...
洛谷 1378 油滴擴充套件
又有浮點數,桑心 話說lxt的14.0下取整竟然成了13?2333,害怕了。go to the problem 題目描述 在乙個長方形框子裡,最多有n 0 n 6 個相異的點,在其中任何乙個點上放乙個很小的油滴,那麼這個油滴會一直擴充套件,直到接觸到其他油滴或者框子的邊界。必須等乙個油滴擴充套件完畢...