UVALive 7077 - Little Zu Chongzhi's Triangles(暴力)
题目大意:给n个木棒,用这n个木棒组成多个三角形,求这些三角形面积和的最大值,如果一个三角也不能组成则输出0.00
(注意:一根木棒就可以当做一条边,刚开始就错误的以为一条边可以由很多木棒共同组成而将题想复杂了)
分析:
将这n个木棒按长度从大到小排(从小到大票排是错误的,我也不知道为什么是错的--!)然后用双重循环暴力,找三角形的三
条边,利用海伦公式求三角形的面积
海伦公式:
a, b, c 分别为三角形的三条边,s为三角形的面积
p = (a + b + c)/2
s = sqrt(p(p-a)(p-b)(p-c));
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<stdlib.h>
#include<algorithm> using namespace std; const int N = ;
int d[N]; int cmp(const void *a, const void *b)
{
return *(int *)b - *(int *)a;
} bool judge(int a, int b, int c)
{
if(a + b > c && a + c > b && b + c > a)
return true;
return false;
} int main()
{
int n, i, j, a, b, c, f;
double s, sum, p;
while(scanf("%d", &n), n)
{
sum = ;
for(i = ; i < n ; i++)
scanf("%d", &d[i]);
qsort(d, n, sizeof(d[]), cmp);
i = ;
while(i < n - )
{
f = ;
j = i + ;
while(j < n)
{
if(judge(d[i], d[j], d[j + ]))
{
a = d[i];
b = d[j];
c = d[j + ];
p = 1.0 * (a + b + c) / ;
s = 1.0 * sqrt(p * (p - a) * (p - b) * (p - c));
sum += s;
i += ;
j = n;
f = ;
}
else
j++;
}
if(f == )
i++;
}
if(sum == )
printf("0.00\n");
else
printf("%.2f\n", sum);
}
return ;
}
UVALive 7077 - Little Zu Chongzhi's Triangles(暴力)的更多相关文章
- UVALive 7077 Little Zu Chongzhi's Triangles (有序序列和三角形的关系)
这个题--我上来就给读错了,我以为最后是一个三角形,一条边可以由多个小棒组成,所以想到了状态压缩各种各样的东西,最后成功了--结果发现样例过不了,三条黑线就在我的脑袋上挂着,改正了以后我发现N非常小, ...
- URAL 7077 Little Zu Chongzhi's Triangles(14广州I)
题目传送门 题意:有n根木棍,三根可能能够构成三角形,选出最多的三角形,问最大面积 分析:看到这个数据范围应该想到状压DP,这次我想到了.0010101的状态中,1表示第i根木棍选择,0表示没选,每一 ...
- Little Zu Chongzhi's Triangles
Little Zu Chongzhi's Triangles Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 512000/512000 ...
- hdu5135 Little Zu Chongzhi's Triangles
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 512000/512000 K (Java/Others) Total Submissi ...
- [HDU 5135] Little Zu Chongzhi's Triangles (dfs暴搜)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5135 题目大意:给你n条边,选出若干条边,组成若干个三角形,使得面积和最大.输出最大的面积和. 先将边 ...
- hdu 5135 Little Zu Chongzhi's Triangles
http://acm.hdu.edu.cn/showproblem.php?pid=5135 题意:给你N个木棍的长度,然后让你组成三角形,问你组成的三角形的和最大是多少? 思路:先求出可以组成的所有 ...
- HDU5131-Song Jiang's rank list HDU5135-Little Zu Chongzhi's Triangles(大佬写的)
Song Jiang's rank list Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 512000/512000 K (Java ...
- HDU 5135.Little Zu Chongzhi's Triangles-字符串 (2014ACM/ICPC亚洲区广州站-重现赛)
Little Zu Chongzhi's Triangles Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 512000/512000 ...
- UVaLive 6623 Battle for Silver (最大值,暴力)
题意:给定一个图,让你找一个最大的子图,在这个子图中任何两点都有边相连,并且边不交叉,求这样子图中权值最大的是多少. 析:首先要知道的是,要想不交叉,那么最大的子图就是四个点,否则一定交叉,然后就暴力 ...
随机推荐
- HTML5_智能表单
1.HTML5中为了方便排版,可以使from中的表单标签脱离from的嵌套.方法:from指定ID,所有表单标签均添加from=id属性. <form action="http://l ...
- ListView 连接数据库的增删改查
private string link = "server=.;database=list;user=sa;pwd=123"; public void chaxun() //创建一 ...
- UVa 548 (二叉树的递归遍历) Tree
题意: 给出一棵由中序遍历和后序遍历确定的点带权的二叉树.然后找出一个根节点到叶子节点权值之和最小(如果相等选叶子节点权值最小的),输出最佳方案的叶子节点的权值. 二叉树有三种递归的遍历方式: 先序遍 ...
- [转][TFS] 禁止默认允许多人签出和强制解除签入签出锁
转自:http://blog.xieyc.com/tfs-disable-multiple-check-out-and-force-to-undo-locking/ | 小谢的小站 [TFS] 禁止默 ...
- Windows Azure移动终端云服务管理(公测版)
概览 云在远方,管理在您手中.在这个移动为先 云为先的世界,服务不再是基于请求才提供,而是主动来到身边方便您的模式了.我们最近将会陆续推出几大移动端利器帮助您随时随地管理您的云服务. 首批利器之中排名 ...
- 【JavaScript学习笔记】点击消失
<!DOCTYPE html> <html> <head> <script type="text/javascript" src=&quo ...
- 《C和指针》读书笔记 第3章-数据
原创文章,转载请注明出处:http://www.cnblogs.com/DayByDay/p/3936488.html
- Comparator与Comparable的异同
同 它们都是Java的一个接口,都是用来实现集合中元素的比较.排序. 异 Comparator位于java.util下: Comparable位于java.lang下: Comparable(可比较的 ...
- 通过反射执行get、set方法
Class clazz = sourceObj.getClass(); 1.获取所有属性 BeanInfo beanInfo = Introspector.getBeanInfo(clazz); Pr ...
- java定时器的几种用法
package com.lid; import java.util.Calendar; import java.util.Date; import java.util.Timer; import ja ...