luogu cogs 油滴擴充套件

2022-04-30 04:42:10 字數 1331 閱讀 2310

★   輸入檔案:oilbox.in輸出檔案:oilbox.out簡單對比

時間限制:1 s  

記憶體限制:128 mb

在乙個長方形框子裡,最多有n(o≤n≤6)個相異的點。在其中任何乙個點上放乙個很小的油滴(即半徑可視為0),那麼這個油滴會一直擴充套件,直到接觸到其他油滴或者框子的邊界。必須等乙個油滴擴充套件完畢才能放置下乙個油滴。那麼應該按照怎樣的順序在這n個點上放置油滴,才能使放置完畢後所有油滴佔據的總面積最大呢?(不同的油滴不會相互融合)

第一行乙個整數n。

第二行為長方形邊框乙個頂點及其對角頂點的座標,x,y,x',y』。

接下去n行,每行兩個整數xi,yi,表示盒子內n個點的座標。

以上所有的整數都在[-1000,1000]內。

一行,乙個整數,長方形盒子剩餘的最小空間(結果四捨五入輸出)。

20 0 10 10

3 37 7

【樣例輸出】

50注:圓的面積公式s=pi*r*r,其中r為圓的半徑,pi=3.1415926。

1 #include2 #include3 #include4 #include5

using

namespace

std;

6int

n,xa,ya,xb,yb;

7const

double infd=100000000.0;//

這個是對於double的inf

8const

double pi=acos(-1);//

為了精度

9double

ans;

10int x[10],y[10

];11

double r[10

];12

int seq[10

];13

int fact[10]=;//

階乘值,其實就是全排列數

14double dist(int a,int b)

17void

solve()

29 r[seq[i]]=mr;//

記錄該圓半徑

30 cur-=pi*mr*mr;//

計算目前未被覆蓋的面積 31}

32 ans=min(ans,cur);//

更新答案

33return;34

}35intmain()

44for(int i=0;i)

48 printf("

%.0lf

",ans);

49return0;

50 }

搜尋 油滴擴充套件

1 油滴擴充套件 box 問題描述 在乙個長方形框子裡,最多有n o n 6 個相異的點。在其中任何 個點上放乙個很小的油滴,那麼這個油滴會一直擴充套件,直到接觸到其他油滴或者框子的邊界。必須等乙個油滴擴充套件完畢才能放置下乙個油滴。那麼應該按照怎樣的順序在這n個點上放置油滴,才能使放置完畢後所有油...

TYVJ1443(油滴擴充套件)

r的半徑共包含三種情況 首先,半徑不能碰邊,因此在它到四個邊界裡找乙個最小值。然後,我們遍歷已經有半徑的點,然後看看能不能被更新,如上圖,左邊的情況是,左邊的圖對於紅色的圓來說,黑圓圓心距紅圓圓心的距離d減去紅圓的半徑r1如果小於黑圓到四個邊界的距離並且大於0 小於0就出現了第二種情況 那麼黑圓的半...

Luogu P1378 油滴擴充套件

題目描述 在乙個長方形框子裡,最多有n 0 n 6 個相異的點,在其中任何乙個點上放乙個很小的油滴,那麼這個油滴會一直擴充套件,直到接觸到其他油滴或者框子的邊界。必須等乙個油滴擴充套件完畢才能放置下乙個油滴。那麼應該按照怎樣的順序在這n個點上放置油滴,才能使放置完畢後所有油滴佔據的總體積最大呢?不同...