HDU 4386 Quadrilateral(四边形的海伦公式的应用)
题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=115760#problem/G
题目大意是给出四条边,问能否组成一个四边形,如果可以的话输出最大的四边形的面积,否则输出-1。
判断能否组成四边形和三角形差不多,只要满足任意三条边大于第四条边即可。
而对于计算面积,仓鼠学长给的方法是找两条边,然后二分它们的夹角找出最小的面积即可(因为四条边确定了,再确定一个夹角那么这个四边形的面积也就确定了)。然而还有更快的方法。
根据四边形的海伦公式,S<=sqrt((p-a)*(p-b)*(p-c)*(p-d)),(p是四边形的半周长)。那么答案就很显然了- -。。(幻神这题秒过真是厉害。。)
证明方法如下:
利用三角形的各种公式就可以证明出来了,要注意的是,S最大的条件是对角的和是180°。
下面给出AC代码:
#include <stdio.h>
#include <iostream>
#include <algorithm>
#include <math.h>
#include <string.h>
using namespace std;
int dp[][];
int num[];
int main()
{
int T;
scanf("%d",&T);
for(int i=;i<=T;i++)
{
printf("Case %d: ",i);
double a,b,c,d;
cin>>a>>b>>c>>d;
double p = (a+b+c+d)/;
if(p<=a||p<=b||p<=c||p<=d) puts("-1");
else printf("%f\n",sqrt((p-a)*(p-b)*(p-c)*(p-d)));
}
}
另外,在这里再回顾一下三角形的海伦公式,有点区别:S=sqrt(p*(p-a)*(p-b)*(p-c)),(p同样是半周长)。
HDU 4386 Quadrilateral(四边形的海伦公式的应用)的更多相关文章
- HDU 4386 Quadrilateral(数学啊)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4386 Problem Description One day the little Jack is p ...
- HDU 4386
http://acm.hdu.edu.cn/showproblem.php?pid=4386 题意:给四条边长,问能否组成四边形,如果能,求最大面积 求最大面积用海伦公式的四边形推广,p=(a+b+c ...
- HDU 2829 Lawrence(四边形优化DP O(n^2))
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2829 题目大意:有一段铁路有n个站,每个站可以往其他站运送粮草,现在要炸掉m条路使得粮草补给最小,粮草 ...
- 【无聊放个模板系列】HDU 3506 (四边形不等式优化DP-经典石子合并问题[环形])
#include<cstdio> #include<cstdlib> #include<cstring> #include<iostream> #inc ...
- hdu 2829 Lawrence(四边形不等式优化dp)
T. E. Lawrence was a controversial figure during World War I. He was a British officer who served in ...
- hdu 3480 Division(四边形不等式优化)
Problem Description Little D is really interested in the theorem of sets recently. There’s a problem ...
- HDU 3516 DP 四边形不等式优化 Tree Construction
设d(i, j)为连通第i个点到第j个点的树的最小长度,则有状态转移方程: d(i, j) = min{ d(i, k) + d(k + 1, j) + p[k].y - p[j].y + p[k+1 ...
- hdu 2829(四边形优化 && 枚举最后一个放炸弹的地方)
Lawrence Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Su ...
- HDU 3506 DP 四边形不等式优化 Monkey Party
环形石子合并问题. 有一种方法是取模,而如果空间允许的话(或者滚动数组),可以把长度为n个换拓展成长为2n-1的直线. #include <iostream> #include <c ...
随机推荐
- 浅谈.NET中的类型和装箱、拆箱原理
谈到装箱拆箱,大概的意思就是值类型和引用类型的相互转换呗---值类型到引用类型叫装箱,反之则叫拆箱.这当然没有问题,可是你只知道这么多,那么建议你花点时间看看楼主这篇文章 1. .NET中的类型 为了 ...
- IQueryable vs. IEnumerable
IQueryable<T> extends the IEnumerable<T> interface IEnumerable<T> is great for wor ...
- opencv-04--图像金字塔
图像金字塔被广泛应用于各种视觉应用中.图像金字塔是一个图像集合,集合中图像都源于同一个原始图像,而且是通过对原始图像连续降采样获得,直到达到某个中止条件才停止降采样.(当然,降为一个像素肯定是中止条件 ...
- TypeScript入门八:TypeScript的命名空间
初识命名空间(namespace指令) 命名空间与文件拆分 多重命名空间与三斜杠指令引入依赖文件 一.初识命名空间(namespace指令) TypeScript的命名空间可以说就是ES6的模块化,其 ...
- Java架构师告诉你Spring IoC有什么好处呢
前言: 这个问题也一直困惑我很久,毕竟其他语言没有IOC也活的很好. 但是Spring在当时能够一统江湖,跟IOC真的有很大的关系. 在没有IOC的时代,New代表一切,女朋友都是可以New出来的. ...
- 【SQL server】SQL server基础(二)
一.一些重要的SQL命令 SELECT - 从数据库中提取数据 UPDATE - 更新数据库中的数据 DELETE - 从数据库中删除数据 INSERT INTO - 向数据库中插入新数据 CREAT ...
- Viewer.js的inline模式
开始 前几天接到一个小的支持,要做一个有图像预览和操作功能的demo,并且给出了参照的模板.刚开始简单的看了一下给的模板,一个是boxImg.js,另一个是Viewer.js. 问题 其实图片预览的插 ...
- web容器(weblogic、resin、tomcat、jboss对比)
WebLogic 12c Linux静默安装 weblogic11g 密码忘记解决方案 glassfish和tomcat各自的优势和劣势 Linux Resin4.0 安装配置(优质) 对比 . we ...
- 7.MapReduce操作Hbase
7 HBase的MapReduce HBase中Table和Region的关系,有些类似HDFS中File和Block的关系.由于HBase提供了配套的与MapReduce进行交互的API如 Ta ...
- 1.Hbase集群安装配置(一主三从)
1.HBase安装配置,使用独立zookeeper,shell测试 安装步骤:首先在Master(shizhan2)上安装:前提必须保证hadoop集群和zookeeper集群是可用的 1.上传:用 ...