洛谷P1378 油滴擴充套件

2022-05-31 05:06:13 字數 1339 閱讀 9390

題目:

在乙個長方形框子裡,最多有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

解析:因為n<=6,所以只需要暴力列舉每一種排列即可。

1 #include2 #include3 #include4 #include5

#define pi 3.1415926535897932384

6using

namespace

std;78

intn;

9double x,y,x2,y2; //

x,y left up x1,y1 right down

10double xx[10],yy[10

];11

double ans=0;12

13int vis[10

];14

double nx[10],ny[10],nr[10

];15

16void dfs(int step,double

s)21

for (int i=1;i<=n;++i)

22if (!vis[i])33}

34 dfs(step+1,s+pi*nr[step]*nr[step]);

35 vis[i]=0;36

}37}38

39int

main()

47 dfs(1,0

);48 printf("

%.0lf

",(x2-x)*(y2-y)-ans);

49return0;

50 }

戳我》_<

洛谷 P1378 油滴擴充套件

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

洛谷P1378 油滴擴充套件

1 dfs的題寫著就是很有意思,資料很小,正兒八經的暴力題,如果不用深搜完全可以用n層for迴圈,n很小嘛,dfs找bug真的是很刺激啊 最後注釋了1行 就從50分到100分了 pragma gcc optimize 2 include using namespace std define pi a...

洛谷P1378 油滴擴充套件

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