hihoCoder挑战赛16 A—— 王胖浩与三角形
来源:互联网 发布:mac os教程 编辑:程序博客网 时间:2024/05/13 07:36
思路:开始没有思路,想到了用三边乱搞(每条边按照比例增加)然而样例都无法通过。后来想到了海伦公式sqrt((a+b+c)(a+b-c)(b+c-a)(a+c-b))/4,那么这样以来就是让这个三角形趋于正三角形了,即三边的方差最小,那么依次是先补最短,次短,长(贪心的算法)。
code:
#include <iostream>#include <cstdio>#include <cmath>#include <algorithm>#include <cstring>#include <sstream>#include <string>#include <vector>#include <list>#include <queue>#include <stack>#include <map>#include <set>#include <bitset>using namespace std;typedef long long ll;typedef unsigned long long ull;typedef long double ld;const int INF=0x3fffffff;const int inf=-INF;const int N=1000000;const int M=2005;const int mod=1000000007;const double pi=acos(-1.0);#define cls(x,c) memset(x,c,sizeof(x))#define cpy(x,a) memcpy(x,a,sizeof(a))#define fr(i,s,n) for (int i=s;i<=n;i++)#define lson l,m,rt<<1#define rson m+1,r,rt<<1|1#define lrt rt<<1#define rrt rt<<1|1#define middle int m=(r+l)>>1#define lowbit(x) (x&-x)#define pii pair<int,int>#define mk make_pair#define IN freopen("in.txt","r",stdin);#define OUT freopen("out.txt","w",stdout);double a[3],l;double sd(double a,double b,double c){ double p=(a+b+c)*0.5; return sqrt(p*(p-a)*(p-b)*(p-c));}double sol(){ double t=min(l,a[1]-a[0]); a[0]+=t,l-=t; if (l>0) { t=min(l*0.5,(a[2]-a[1])); a[1]+=t; a[0]+=t; l-=t*2; //cout<<a[0]<<" "<<a[1]<<" "<<a[2]<<endl; if (l>0) { fr(i,0,2) a[i]+=1.0*l/3; } } //cout<<a[0]<<" "<<a[1]<<" "<<a[2]<<endl; return sd(a[0],a[1],a[2]);}int main(){ int T; scanf("%d",&T); while (T--) { scanf("%lf %lf %lf %lf",&a[0],&a[1],&a[2],&l); sort(a,a+3); printf("%.10f\n",sol()); }}
0 0
- hihoCoder挑战赛16 A—— 王胖浩与三角形
- hihoCoder挑战赛16 王胖浩与三角形
- hiho 挑战赛16 A.王胖浩与三角形
- hihoCoder挑战赛A题——顺子
- hihoCoder挑战赛14 A 不等式
- hihoCoder挑战赛B题——计数
- HihoCoder 1245:王胖浩与三角形 三角形边长与面积
- hihoCoder挑战赛19 A Rikka with Sequence
- hihoCoder挑战赛14A题 1223
- hihoCoder挑战赛C题——永恒游戏
- Hihocoder 挑战赛
- hihocoder王胖浩与三角形【海伦公式+分类讨论】
- hihocoder 挑战赛13A 组合数学中的帕斯卡公式
- hihoCoder挑战赛15 Best Route in a Grid
- hihoCoder挑战赛17 A String Problem I 题库 1260
- hiho-hihoCoder挑战赛29-A-序列的值
- hihoCoder挑战赛14-1223
- hihoCoder挑战赛14-1224
- java中从键盘输入的三种方法
- jQuery源码分析之ajaxTransport和ajaxPrefilters执行函数之inspectPrefiltersOrTransports
- Linux内核和用户空间应用程序的接口—系统调用
- set方法的调用在内存管理中
- StoryBoard之User Defined Runtime Attributes的使用
- hihoCoder挑战赛16 A—— 王胖浩与三角形
- SharePoint 2010 升级到SharePoint 2013的流程
- 大杂烩
- 大话数据结构——第一、二章
- 链表--查看链表是否含有环(不一样的方法)
- Core Data 入门
- MySQL修改配置 区分大小写和不区分大小写
- create tablespace
- 统计Android apk和jar的方法数