Gym 101047K Training with Phuket's larvae

Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u

Description

standard input/output

Thai cuisine is known for combining seasonings so that every dish has flavors that are sweet (sugar, fruits, bell peppers), spicy, sour (vinegar, tamarind, lime), and salty (soy sauce, fish sauce). The most exotic dish, however, is the one containing fried insect larvae; naturally, it is often showcased to tourists. Westerners usually shudder at the thought of eating larvae, but they are highly valued in Thailand and they are a huge success in parties. Thai children often play with food. They specially like building triangles up using fried larvae as the edges.

Marcos "the (Rubik) solver" coaches his university's team on a famous computer programming contest. Next year, the contest's world finals will take place in Phuket, Thailand.

Marcos knows how Thai children like to play with larvae, so he had an idea for a special training session. His idea involves preparing a large amount of fried larvae of several different lengths. Each of his friends, in turn, must select three larvae to build a triangle. Then, the amount of fried larvae each friend has to eat is proportional to the area of the triangle she or he built.

Marcos hopes that, since you want to eat as little larvae as possible, you'll write a program to choose the larvae that forms a triangle of minimum area. Thus, besides training your computer programming skills, you'll also be training to face Thai cuisine. If you actually enjoy this dish, you may use this program to help your other friends, making sure that there will be more fried larvae left for you.

Input

The first line has a single integer T, the number of test cases.

Each test case starts with an integer N, the number of larvae. In the next line there are N space-separated real numbers a1, ..., an, representing the lengths of the larvae.

Limits

  • 1 ≤ T ≤ 30
  • 1 ≤ N ≤ 2·103
  • 1 ≤ ai ≤ 500
  • The sum of N over all test cases will not exceed 6·103

Output

For each test case, print a single line containing the minimum area for that case, the error should not exceed 10 - 4; if it is not possible to build a triangle from the larvae, print -1.

Sample Input

Input
3
4
3 4 5 6
3
1 2 4
5
3.4 2.8 7.1 5.2 10
Output
5.3326822519
-1
4.3599885321
/*/
题意:
给你n条边,问这n条边构成的三角形的面积最小是多少。 题意很简单,想着暴力,一看复杂度 O(8*n^3) ... 让我冷静下。。 然后想到枚举两条边用二分第三条边~TLE 噗。。 后面考虑了很久,要求最小的面积,只有三角形是那种细长细长的才能最小,又枚举 i 和 j 是按照顺序来枚举的,只要找到,比 i+j 小一点点的的就行了。 用到lower_bound( , , );函数; AC代码:
/*/
#include <map>
#include <set>
#include <cmath>
#include <ctime>
#include <stack>
#include <queue>
#include <cstdio>
#include <cctype>
#include <bitset>
#include <string>
#include <vector>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <functional>
#define debug(x) cout<<"["<<x<<"]";
#define FIN freopen("input.txt","r",stdin);
#define FOUT freopen("output.txt","w+",stdout);
//#pragma comment(linker, "/STACK:102400000,102400000")
using namespace std;
typedef long long LL;
typedef pair<int, int> PII;
const int MAX=1e5+5; double Check(double a,double b,double c) {
double s;
double p=(a+b+c)/2;
return s=sqrt((p-a)*(p-b)*(p-c)*p);
} int main() {
int T;
double a[MAX];
cin>>T;
while(T--) {
int n;
scanf("%d",&n);
for(int i=0; i<n; i++) {
scanf("%lf",&a[i]);
}
double ans=1e9+10000;
sort(a,a+n);
for(int i=0; i<n; i++) {
for(int j=i+1; j<n-1; j++) {
if(a[i]+a[j]>a[j+1]) ans=min(ans,Check(a[i],a[j],a[j+1]));
int k=lower_bound(a+j,a+n,a[i]+a[j])-a-1;
if(k>j&&a[k]<a[i]+a[j]) ans=min(ans,Check(a[i],a[j],a[k]));
}
}
if(ans!=1e9+10000)
printf("%.10lf\n",ans);
else
printf("-1\n");
}
return 0;
}

  

 

ACM: Gym 101047K Training with Phuket's larvae - 思维题的更多相关文章

  1. Gym 101047K Training with Phuket's larvae

    http://codeforces.com/gym/101047/problem/K 题目:给定n<=2000条绳子,要你找出其中三条,围成三角形,并且要使得围成的三角形面积最小 思路: 考虑一 ...

  2. UVA 1394 And Then There Was One / Gym 101415A And Then There Was One / UVAlive 3882 And Then There Was One / POJ 3517 And Then There Was One / Aizu 1275 And Then There Was One (动态规划,思维题)

    UVA 1394 And Then There Was One / Gym 101415A And Then There Was One / UVAlive 3882 And Then There W ...

  3. HDU 6298.Maximum Multiple-数学思维题(脑子是个好东西,可惜我没有) (2018 Multi-University Training Contest 1 1001)

    暑假杭电多校第一场,这一场是贪心场,很多贪心的题目,但是自己太菜,姿势挫死了,把自己都写吐了... 2018 Multi-University Training Contest 1 HDU6298.M ...

  4. 思维题 Gym 100553A Alter Board

    题目传送门 /* 题意:一个n×m的矩形,相邻的颜色不同,黑或白.问最少的翻转次数,每次翻转可指定任意一个子矩形 思维题:最少要把偶数行和列翻转,也就是n/2+m/2次 */ #include < ...

  5. Codeforces Gym 102392F Game on a Tree (SEERC2019 F题) 题解

    题目链接:https://codeforces.com/gym/102392/problem/F 题意:被这题题意坑了很久,大意是说有一棵根为 \(1\) 的树,每个节点初始都是白色, \(Alice ...

  6. ACM思维题训练 Section A

    题目地址: 选题为入门的Codeforce div2/div1的C题和D题. 题解: A:CF思维联系–CodeForces -214C (拓扑排序+思维+贪心) B:CF–思维练习-- CodeFo ...

  7. ACM: Gym 101047M Removing coins in Kem Kadrãn - 暴力

     Gym 101047M Removing coins in Kem Kadrãn Time Limit:2000MS     Memory Limit:65536KB     64bit IO Fo ...

  8. ACM: Gym 100935F A Poet Computer - 字典树

    Gym 100935F A Poet Computer Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%I64d &am ...

  9. Gym - 100676G Training Camp (状压dp)

    G. Training Camp[ Color: Yellow ]Montaser is planning to train very hard for ACM JCPC 2015; he has p ...

随机推荐

  1. phpcms调取数据库的两种机制

    在phpcms中,模板调取后台的数据有两种机制: 1.在控制器中定义数据,在模板中直接调用. 2.标签机制.即在模块的classes/tag.class中定义标签类,然后在模板中用标签调用 两种调用机 ...

  2. iOS 25个性能优化/内存优化常用方法

    1. 用ARC管理内存 ARC(Automatic ReferenceCounting, 自动引用计数)和iOS5一起发布,它避免了最常见的也就是经常是由于我们忘记释放内存所造成的内存泄露.它自动为你 ...

  3. C#中的LINQ

    从自己的印象笔记里面整理出来,排版欠佳.见谅!   1.LINQ: 语言集成查询(Language Integrated Query) 实例: var q=      from c in catego ...

  4. PHP cURL 使用cookie 模拟登录

    cURL是什么 cURL: http://php.net/manual/zh/book.curl.php PHP 支持 Daniel Stenberg 创建的 libcurl 库,能够连接通讯各种服务 ...

  5. 学习 opencv---(7) 线性邻域滤波专场:方框滤波,均值滤波,高斯滤波

    本篇文章中,我们一起仔细探讨了OpenCV图像处理技术中比较热门的图像滤波操作.图像滤波系列文章浅墨准备花两次更新的时间来讲,此为上篇,为大家剖析了"方框滤波","均值滤 ...

  6. JavaScript 常用正则表达式

    ==========================正则表达式=========================== 常用元字符 代码 说明 . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划 ...

  7. oracle忘记密码

    1.输入命令: sqlplus /nolog ,进入oracle控制台,并输入 conn /as sysdba;以DBA角色进入. 2.连接成功后,输入"select username fr ...

  8. Linux-Memory小记

    以前我对这块认识很模糊,而且还有错误的认识:今天由我同事提醒,所以我决定来好好的缕缕这块的关系.图: -------------------------------------------1.参数含义 ...

  9. ACM/ICPC 之 机器调度-匈牙利算法解最小点覆盖集(DFS)(POJ1325)

    //匈牙利算法-DFS //求最小点覆盖集 == 求最大匹配 //Time:0Ms Memory:208K #include<iostream> #include<cstring&g ...

  10. Xcode工作区间xxxx.xcworkspace不包含xxxx.xcodeproj

    一.问题描述 项目用到cocoapods管理第三方框架,所以需要打开xxxx.xcworkspace,Pods正常显示,但xxxx.xcodeproj显示红色,不包含xxxx.xcodeproj并且无 ...