uva 10883——Supermean
Do you know how to compute the mean (or average) of?n?numbers? Well, that's not good enough for me. I want the supermean! "What's a supermean," you ask? I'll tell you. List the?n?given numbers in non-decreasing order. Now compute the average of each pair of adjacent numbers. This will give you?n?- 1 numbers listed in non-decreasing order. Repeat this process on the new list of numbers until you are left with just one number - the supermean. I tried writing a program to do this, but it's too slow. :-( Can you help me?
Input
The first line of input gives the number of cases,?N.?N?test cases follow. Each one starts with a line containing?n?(0<<b>n<=50000). The next line will contain the?ninput numbers, each one between -1000 and 1000, in non-decreasing order.
Output
For each test case, output one line containing "Case #x:" followed by the supermean, rounded to 3 fractional digits.
?
Sample Input
4
1
10.4
2
1.0 2.2
3
1 2 3
5
1 2 3 4 5
?
Sample Output
Case #1: 10.400
Case #2: 1.600
Case #3: 2.000
Case #4: 3.000
?題意:給出n個(gè)數(shù)字, 要求你求出它們的supermean, supermean的定義是: n個(gè)數(shù)先兩兩相鄰求平均值, 那么得到n-1個(gè)數(shù), 已知循環(huán)做這件事,?直到剩下的數(shù)字只有1個(gè), 那么這數(shù)就是supermean.
思路:該題在劉汝佳的紫書上《入門經(jīng)典第二版》上有涉及(具體320頁(yè)),沒有書的也可查看我博客中的uva 1635題,和該題類似,比如假設(shè)5個(gè)數(shù)a1,a2,a3,a4,a5,最后退出的結(jié)果是a1+4a2+6a3+4a4+a5,聰明的小伙伴或許已經(jīng)想到楊輝三角,就是楊輝三角,二項(xiàng)式系數(shù)c40到c44,然后去求即可,打不了二維表,對(duì)于每個(gè)n,打一個(gè)一維表,最后一步關(guān)鍵的高精度處理,這里采用取對(duì)數(shù)用double保存;
code:
#include <iostream>#include <cstdio>
#include <vector>
#include <cmath>
using namespace std;
const int N=50011;
double f[N];
void my_way(int n) //對(duì)于每個(gè)n,打一個(gè)一維表
{
//f[0]=1;
f[0]=f[n]=0;
for (int i=1;i<=n/2;i++)
f[n-i]=f[i]=f[i-1]+log10(n-i+1)-log10(i); //高精度處理1
}
int main()
{
int n,T,ca=1;
double ans,a;
scanf("%d",&T);
while (T--)
{
scanf("%d",&n);
ans=0;
my_way(n-1);
for (int i=0;i<n;i++)
{
scanf("%lf",&a);
ans+=1.0*pow(10,f[i]-(n-1)*log10(2))*a; //高精度處理2
}
printf("Case #%d: %.3lf\n",ca++,ans);
}
}
總結(jié)
以上是生活随笔為你收集整理的uva 10883——Supermean的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 北魏冯太后剧情介绍
- 下一篇: node 上传图片 造成linux 缓存