P1378 油滴擴充套件 搜尋

2022-05-18 05:49:44 字數 2372 閱讀 4117

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

思路

列舉第 i 個油滴與邊界和其他油滴之間的距離,列舉出面積最大的情況即可

code

#include

<

bits/stdc++.h

>

#define

dbg(x) cout << #x <<"=

"<< x << endl

#define

eps1e-8

#define

piacos

(-1.0

)using

namespace

std;

typedef

long

long ll;

const

int inf =

0x3f3f3f3f

;template

<

class

t>

inline

void

read(t

&res)

namespace

_buff

return

ib ==

ie ?-1

:*ib++;}}

intqread

()if

(c =='-

')for(; c >='0

'&& c <='9

'; c =

getc

())return pos ? ret :

-ret;

}const

int maxn =

1e3+7;

int n;

struct

node

a[maxn

];bool vis[maxn];

double dis[maxn][maxn];

double lx, rx, dy, uy;

double area;

double ans =0;

double

dist

(node a,

node b)

bool

check

(int id)

for(

int i =

1; i <= n;

++i )}}

return

true;

}void

dfs(

int cnt,

double sum)

// dbg(ans);

for(

int i =

1; i <= n;

++i )

}vis[i]

=1;if

(a[i

].r<0)

dfs(

cnt +1

,sum +a[

i].r*a[

i].r*

pi);

vis[i]

=0;}

}return;}

intmain

()if

(dy > uy)

area =

(rx - lx)

*(uy - dy);

for(

int i =

1; i <= n;

++i )

for(

int i =

1; i <= n;

++i )

}dfs(1

,0.0

);// dbg(area);

// dbg(ans);

printf("

%d\n"

,(int

)(area - ans +

0.5));

return0;

}

P1378 油滴擴充套件

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

P1378 油滴擴充套件

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

題解 P1378 油滴擴充套件

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