hdu 2086 A1 = ?(数学题)
2015-05-30 13:25
351 查看
分析:(来自大神的博客)
因为:Ai=(Ai-1+Ai+1)/2 - Ci,
A1=(A0 +A2 )/2 - C1;
A2=(A1 + A3)/2 - C2 , ...
=> A1+A2 = (A0+A2+A1+A3)/2 - (C1+C2)
=> A1+A2 = A0+A3 - 2(C1+C2)
同理可得:
A1+A1 = A0+A2 - 2(C1)
A1+A2 = A0+A3 - 2(C1+C2)
A1+A3 = A0+A4 - 2(C1+C2+C3)
A1+A4 = A0+A5 - 2(C1+C2+C3+C4)
...
A1+An = A0+An+1 - 2(C1+C2+...+Cn)
----------------------------------------------------- 左右求和
(n+1)A1+(A2+A3+...+An) = nA0 +(A2+A3+...+An) + An+1 - 2(nC1+(n-1)C2+...+2Cn-1+Cn)
=> (n+1)A1 = nA0 + An+1 - 2(nC1+(n-1)C2+...+2Cn-1+Cn)
=> A1 = [nA0 + An+1 - 2(nC1+(n-1)C2+...+2Cn-1+Cn)]/(n+1)
代码:
因为:Ai=(Ai-1+Ai+1)/2 - Ci,
A1=(A0 +A2 )/2 - C1;
A2=(A1 + A3)/2 - C2 , ...
=> A1+A2 = (A0+A2+A1+A3)/2 - (C1+C2)
=> A1+A2 = A0+A3 - 2(C1+C2)
同理可得:
A1+A1 = A0+A2 - 2(C1)
A1+A2 = A0+A3 - 2(C1+C2)
A1+A3 = A0+A4 - 2(C1+C2+C3)
A1+A4 = A0+A5 - 2(C1+C2+C3+C4)
...
A1+An = A0+An+1 - 2(C1+C2+...+Cn)
----------------------------------------------------- 左右求和
(n+1)A1+(A2+A3+...+An) = nA0 +(A2+A3+...+An) + An+1 - 2(nC1+(n-1)C2+...+2Cn-1+Cn)
=> (n+1)A1 = nA0 + An+1 - 2(nC1+(n-1)C2+...+2Cn-1+Cn)
=> A1 = [nA0 + An+1 - 2(nC1+(n-1)C2+...+2Cn-1+Cn)]/(n+1)
代码:
#include<cstdio> #include<cmath> using namespace std; double c[5000]; int main() { int n; double a,aa; while(scanf("%d",&n)!=EOF) { scanf("%lf%lf",&a,&aa); for(int i=1;i<=n;i++) { scanf("%lf",&c[i]); } double ans=0; int k=1; int nn=n; while(n) { ans=ans+n*c[k]; n--; k++; } ans=(nn*a+aa-2*ans)/(nn+1); printf("%.2lf\n",ans); } return 0; }
相关文章推荐
- jdk在eclipse中链接源码配置
- linux与secureCRT连接配置
- 工业控件的链接
- mysql 数据同步Slave_IO_Running:No处理方法
- win7 64位 QT安装 MySql数据库驱动安装遇到的问题
- 贪吃蛇 Linux
- OpenGL二十面体及多次细分成球体
- WaitForSingleObject和CEvent用法
- 页面可编辑
- 【Android】emulator命令
- Linux(Centos)配置android开发环境总结
- 数据结构面试题总结5——数组:找出数组中唯一一个出现一次的元素
- C++ 学习笔记(一):类的声明与编写
- while(t--) 详解
- 黑马程序员——IO流7:其他IO技术介绍-下
- 各种数据库默认端口汇集
- 第13周-多态性-项目2-形状类族中的纯虚函数
- leetcode 12 -- Integer to Roman
- Hadoop: MapReduce2的几个基本示例
- UIView的layoutSubviews,initWithFrame,initWithCoder方法