poj解题报告——1862
2015-03-04 12:10
316 查看
题意:给定你一系列的数,任意挑选其中两个数a和b,得到一个新的数2*sqrt(a*b),然后再将这个新的个放回。一直这样下去,直到只剩下一个数。求剩下的这个数最小是多少。
使用贪心策略,不断挑选两个最大的数组成一个新的数并放回原数列,再挑选最大的两个数……最到只乘一个数为止。
代码如下
使用贪心策略,不断挑选两个最大的数组成一个新的数并放回原数列,再挑选最大的两个数……最到只乘一个数为止。
代码如下
#include<stdio.h> #include<math.h> #include<stdlib.h> int n; int f[105]; int cmp(const int *a,const int *b) { return *(int *)a-*(int *)b; } void main() { int i; double ans; scanf("%d",&n); for(i=0;i<n;i++) scanf("%d",&f[i]); qsort(f,n,sizeof(f[0]),cmp); ans=f[n-1]; for(i=n-2;i>=0;i--) ans=2*sqrt(ans*f[i]); printf("%.3f\n",ans); }
相关文章推荐
- POJ 1862 Stipies 解题报告
- POJ 1862 Stripies(解题报告)
- 二叉堆模板小结-附上解题报告poj3253、poj2442、poj2010、poj3481
- POJ2377 解题报告
- poj1502解题报告(Dijsktra算法)
- poj-openjudge 1040:Bamboo Forest of the Lost 解题报告
- poj 1050 解题报告
- POJ 4046 Sightseeing 解题报告
- POJ2488 A Knight's Journey 解题报告
- POJ 1141 解题报告
- POJ 2446解题报告
- poj训练计划解题报告(做的不多,,,)
- POJ 3160 Father Christmas flymouse 解题报告
- POJ 1663 解题报告
- Poj 1451 JAVA 个人解题报告
- POJ 3087 解题报告
- poj 1201 Intervals 解题报告
- POJ 1083 解题报告
- poj2472解题报告——化用Dijkstra算法
- 【原】 POJ 1088 滑雪 递归+memoization 解题报告