首页 > 其他 > 详细

P1378 油滴扩展

时间:2019-10-09 13:24:46      阅读:61      评论:0      收藏:0      [点我收藏+]
技术分享图片
 1 #include<iostream>
 2 #include<algorithm>
 3 #include<cmath>
 4 using namespace std;
 5 
 6 bool s[7];
 7 double x[7], y[7], r[7], xa, ya, xb, yb, maxs;
 8 int n;
 9 const double PI = 3.1415926535;
10 
11 void dfs(int num, double sum)
12 {
13     if (num > n)
14     {
15         maxs = max(maxs, sum);
16         return;
17     }
18     for (int i = 1; i <= n; i++)
19     {
20         if (!s[i])
21         {
22             double s1 = min(fabs(x[i] - xa), fabs(x[i] - xb));
23             double s2 = min(fabs(y[i] - ya), fabs(y[i] - yb));
24             double mind = min(s1, s2);
25             for (int j = 1; j <= n; j++)
26                 if (i != j && s[j])
27                 {
28                     double d = sqrt((x[i] - x[j]) * (x[i] - x[j]) + (y[i] - y[j]) * (y[i] - y[j]));
29                     mind = min(mind, max(d - r[j], 0.0));
30                 }
31             r[i] = mind;
32             s[i] = 1;
33             dfs(num + 1, sum + r[i] * r[i] * PI);
34             s[i] = 0;
35         }
36     }
37 }
38 int main()
39 {
40     double t;
41     cin >> n;
42     cin >> xa >> ya >> xb >> yb;
43     t = fabs(xa - xb) * fabs(ya - yb);
44     for (int i = 1; i <= n; i++)
45         cin >> x[i] >> y[i];
46     dfs(1, 0);
47     cout << int(t - maxs + 0.5);
48 }
View Code

 

P1378 油滴扩展

原文:https://www.cnblogs.com/thjkhdf12/p/11641101.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!