【问题描述】
在一个长方形框子里,最多有N(0≤N≤6)个相异的点,在其中任何一个点上放一个很小的油滴,那么这个油滴会一直扩展,直到接触到其他油滴或者框子的边界。必须等一个油滴扩展完毕才能放置下一个油滴。那么应该按照怎样的顺序在这N个点上放置油滴,才能使放置完毕后所有油滴占据的总体积最大呢?(不同的油滴不会相互融合)
注:圆的面积公式V=pi*r*r,其中r为圆的半径。
【问题分析】
简单地模拟一下顺序,然后贪心最大化当前点半径,重新判断其他点的最大可能半径即可,注意的是一旦当前点已被覆盖,则半径不可为负数,害得我WA了一次。
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
const int N=7;
const double Pi=3.14159265;
int n,xxx,yyy,xx,yy; int x[N],y[N],step[N]; long long s;
bool used[N]; double ans,zero=