2.1 Description

在平面上找 n 个点, 要求这 n 个点离原点的距离分别为 r1, r2, ..., rn.

最大化这 n 个点构成的凸包面积, 凸包上的点的顺序任意.

2.2 Input Format

第一行一个整数 n.

接下来一行 n 个整数依次表示 ri .

2.3 Output Format

输出一个实数表示答案, 要求绝对误差或相对误差 ≤ 10−6.

2.4 Sample

2.4.1 Input

4

5

8

58

85

2.4.2 Output

2970

2.5 Constraints

对于前 20% 的数据, n ≤ 3;

对于前 40% 的数据, n ≤ 4;

对于另 20% 的数据, r1 = r2 = ... = rn;

对于 100% 的数据, 1 ≤ n ≤ 8, 1 ≤ ri ≤ 1000.

考试的时候看了一会题就感觉是个拉格朗日乘数法的题,但是我为什么往叉积求面积上想了23333,于是就出来了n个限制然后还得三分套三分套三分.......

于是在想如何优化求偏导都是零的过程中时间过去了2.5h  。。。(我好菜啊我现在退役算了)。

正解其实就是拉格朗日乘数法,但是求面积是用(1/2) * a * b * sin(a和b的夹角) ,于是这样就只有一个总限制,那就是所有角的和=2*π。

并且利用所有变量的偏导等于0,我们可以得到 λ = r1 * r2 *cos(r1和r2夹角) = .... ,因为最优情况肯定没有超过π的角,而cos在[0,π]上单调,所以我们二分一下λ 就可以得到最后的答案。

当然因为不一定所有点都在凸包上出现,并且每个点出现的顺序不一定,所以我们还要枚举选ri前几大的点(贪心)和它们的顺序(全排列一下就好了)。

#include<bits/stdc++.h>
#define ll long long
#define D double
using namespace std;
const int maxn=10;
const D pi=acos(-1);
D miu,l,r,thita[maxn];
int n,R[maxn]; inline D calc(){
D tot=0;
for(int i=1;i<n;i++) thita[i]=acos(miu/(R[i]*R[i+1])),tot+=thita[i];
thita[n]=acos(miu/(R[n]*R[1])),tot+=thita[n];
return tot;
} inline void solve(){
D ans=0,now,le,ri; sort(R+1,R+n+1);
for(;n>=3;){
le=-R[1]*R[2],ri=-le; while(1){
l=le,r=ri; while(r-l>=1e-8){
miu=(l+r)/2;
if(calc()>=2*pi) l=miu;
else r=miu;
} if(fabs(calc()-2*pi)<=1e-6){
now=0;
for(int i=1;i<n;i++) now+=sin(thita[i])*(D)R[i]*(D)R[i+1];
now+=sin(thita[n])*(D)R[n]*(D)R[1];
ans=max(ans,now);
} if(!next_permutation(R+1,R+n+1)) break;
} sort(R+1,R+n+1),n--;
for(int i=1;i<=n;i++) R[i]=R[i+1];
} printf("%.11lf\n",ans/2);
} int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++) scanf("%d",R+i);
solve();
return 0;
}

  

某考试 T2 yja的更多相关文章

  1. 9.13 考试 T2 区间

    删区间 题意: 给出一个长度为

  2. 某考试T2 frog

    题目背景 无 题目描述 数轴上有 n 只青蛙,分别编号为 1 到 n.青蛙 i 的初始位置的坐标为 xi. 它们准备进行如下形式的移动:每轮包括 m 次跳跃,第 i 次跳跃由青蛙 ai(1 < ...

  3. 某考试 T2 Tree

    2 树 2.1 题目描述 给一棵n 个节点的树,节点分别编号为0 到n - 1.你可以通过如下的操作来修改这棵树:首先先删去树上的一条边,此时树会分裂为两个连通块,然后在两个连通块之间加上一条新的边使 ...

  4. 题解 2020.10.24 考试 T2 选数

    题目传送门 题目大意 见题面. 思路 本来以为zcx.pxj变强了,后来发现是SPJ出问题了...考试的时候感觉有点人均啊...结果自己还是只想出来一半. 我们假设 \(f(x)=(\lfloor\f ...

  5. 2019.3.7考试T2 离线数论??

    $ \color{#0066ff}{ 题目描述 }$ 一天,olinr 在 luogu.org 刷题,一点提交,等了一分钟之后,又蛙又替. olinr 发动了他的绝招,说:"为啥啊???&q ...

  6. 某考试 T2 orzcyr

    非常nice的一道行列式的题目. 考虑如果没有路径不相交这个限制的话,那么这个题就是一个行列式:设 a[i][j] 为从编号第i小的源点到编号第j小的汇点的路径条数,那么矩阵a[][]的行列式就是的答 ...

  7. 2019.2.26考试T2 矩阵快速幂加速DP

    \(\color{#0066ff}{题解 }\) 可以发现, 数据范围中的n特别小,容易想到状压 可以想到类似于状压DP的思路,按列进行转移 那么应该有3维,\(f[i][j][k]\)代表到第i列, ...

  8. 2019.2.10考试T2, 多项式求exp+生成函数

    \(\color{#0066ff}{ 题目描述 }\) 为了减小文件大小,这里不写一堆题目背景了. 请写一个程序,输入一个数字N,输出N个点的森林的数量.点有标号. 森林是一种无向图,要求图中不能存在 ...

  9. 某考试 T2 Seg

    Seg [问题描述]数轴上有n条线段,第i条线段的左端点是a[i],右端点是b[i].Bob发现1~2n共2n个整数点,每个点都是某条线段的端点.这些线段有如下两类特点:1 x y,表示第x条线段和第 ...

随机推荐

  1. css3纯手写loading效果

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  2. 洛谷 P2788 数学1(math1)- 加减算式

    题目背景 蒟蒻HansBug在数学考场上,挠了无数次的头,可脑子里还是一片空白. 题目描述 好不容易啊,HansBug终于熬到了做到数学最后一题的时刻了,眼前是一堆杂乱的加减算式.显然成功就在眼前了. ...

  3. [Python學習筆記] 使用xlwings 插入註解 (forked 版本)

    到今天為止 xlwings 還沒有插入註解的功能 去原始開發者的 Github Pull Requests 他說之前有人有建議要加入這個功能 但他還沒更新~ 如果需要使用 Python 來插入註解的話 ...

  4. springmvc+maven搭建web项目之二 通过另一种方式配置spring

    1.创建maven web项目 2. 配置pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:x ...

  5. Node + Express + MySQL 接口开发完整案例

    https://blog.csdn.net/u013216976/article/details/85273770 https://github.com/Apache-Ra/node-express- ...

  6. C++ 类中的static成员的初始化和特点

    C++ 类中的static成员的初始化和特点 #include <iostream> using namespace std; class Test { public: Test() : ...

  7. JavaSE-03 Java选择结构

    学习要点 if选择结构 switch选择结构 if选择结构 单分支if选择结构 语法结构 应用场合 问题:如果王小强的Java考试成绩大于98分,小强就能获得一个iphone8作为奖励. 复杂条件下的 ...

  8. Map与对象关系的思考之P1563玩具谜题

    P1563 玩具谜题 结论: map在一些情况有种"对象"的意味,在JSON中,对象可以用K-V格式存储:mybatis中参数是map或者对象都可以实现解析...k-v格式的数据存 ...

  9. Shell获取多行输入并输出每行的第3个字符

    #!/bin/bash echo "$(cut -c3 /dev/stdin)" 标准输入的文件名是/dev/stdin,如果在cut后面输入了这个参数,那么shell会提示你输入 ...

  10. luogu P1618 三连击(升级版)

    题目描述 将1,2,…,9共9个数分成三组,分别组成三个三位数,且使这三个三位数的比例是A:B:C,试求出所有满足条件的三个三位数,若无解,输出“No!!!”. //感谢黄小U饮品完善题意 输入输出格 ...