hdoj-2086-A1=?
题目:A1=?
代码(作者:Fistice):
#include<cstdio>
#include<cmath>
#include<cstring>
#include<queue>
#include<stack>
#include<cstdlib>
#include<vector>
#include<algorithm>
using namespace std;
#define INF 99999999
double c[3005]={0},a0,an1;
int n;
int main()
{
int i,j;
while(~scanf("%d",&n))
{
scanf("%lf%lf",&a0,&an1);
for(i=1;i<=n;i++)
scanf("%lf",&c[i]);
double sum=0;
sum+=n*a0+an1;
for(i=1;i<=n;i++)
{
sum-=(n-i+1)*c[i]*2;
}
sum/=n+1;
printf("%.2lf\n",sum);
}
}
下面是网上的解析,很清楚。
因为:Ai=(Ai-1+Ai+1)/2 - Ci,
A1=(A0 + A2)/2 - C1; //(1)式
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+A1=2A1=(A0 + A2)-2*C1 由(1)式得。
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)
Posted by Fistice at 2016-02-19 15:09:37 on Problem 2086
做后小结:
只能说这道题的推导过程自己能够理解,但是没有一定的思维逻辑和数学基础很难ac这题。
刚刚开始用函数递归来求解。但是对于数学题,递归往往效率相对数学算法低且容易T。
很有趣也很需要思考的一道题,记之。
hdoj-2086-A1=?的更多相关文章
- 【HDOJ】2086 A1 = ?
数学题,首先推导出2*sum{c1,c2...cn} = (An+1-An) - (A1-A0),在将n个该式相加,可以推导出(n+1)*A1=An+1+n*A0-2*sum{sum{c1,c2... ...
- HDU 2086 A1 = ? (找规律推导公式 + 水题)(Java版)
Equations 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2086 ——每天在线,欢迎留言谈论. 题目大意: 有如下方程:Ai = (Ai-1 ...
- HDU 2086 A1 = ?
http://acm.hdu.edu.cn/showproblem.php?pid=2086 Problem Description 有如下方程:Ai = (Ai-1 + Ai+1)/2 - Ci ( ...
- 题解报告:hdu 2086 A1 = ?
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2086 Problem Description 有如下方程:Ai = (Ai-1 + Ai+1)/2 - ...
- hdu 2086 A1 = ?(数学题)
转载链接 因为:Ai=(Ai-1+Ai+1)/2 - Ci, A1=(A0 +A2 )/2 - C1; A2=(A1 + A3)/2 - C2 , ... => ...
- 数学题 HDOJ——2086 简单归纳
哎 真的是懒得动脑子还是怎么滴... 题目如下 Problem Description 有如下方程:Ai = (Ai-1 + Ai+1)/2 - Ci (i = 1, 2, 3, .... n).若给 ...
- hdu 2086 A1 = ? (公式推导)
有如下方程:Ai = (Ai-1 + Ai+1)/2 - Ci (i = 1, 2, 3, .... n).若给出A0, An+1, 和 C1, C2, .....Cn.请编程计算A1 = ? Inp ...
- hdoj:2086
A1 = ? Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Subm ...
- HDU 2086 P - A1 = ?(推表达式)
传送门:http://acm.geekxiong.tech/vjudge/contest/view.action?cid=14#problem/P P - A1 = ? Time Limit:1000 ...
- hdoj 1385Minimum Transport Cost
卧槽....最近刷的cf上有最短路,本来想拿这题复习一下.... 题意就是在输出最短路的情况下,经过每个节点会增加税收,另外要字典序输出,注意a到b和b到a的权值不同 然后就是处理字典序的问题,当松弛 ...
随机推荐
- decltype类型声明- 现代C++新特性总结
decltype类型声明 有时会遇到这样的情况:希望从表达式的类型推断出要定义的变量的类型,但不想用该表达式的值去初始化变量.为了满足这一需求,C++11引入了decltype,它的作用是选择并返回操 ...
- (转)从零开始的Spring Session(一)
Session和Cookie这两个概念,在学习java web开发之初,大多数人就已经接触过了.最近在研究跨域单点登录的实现时,发现对于Session和Cookie的了解,并不是很深入,所以打算写两篇 ...
- ComBSTR的使用
用 CComBSTR 进行编程 Visual Studio .NET 2003 3(共 3)对本文的评价是有帮助 - 评价此主题 ATL 类 CComBSTR 提供对 BSTR 数据类型的包装 ...
- Groovy介绍
关于 Groovy 这一节将学习 Groovy 的基础知识:它是什么,它与 Java 语言和 JVM 的关系,以及编写 Groovy 代码的一些要点. 一.什么是 Groovy? Groovy 是 J ...
- Haproxy启动故障:Starting proxy:cannot bind socke
Haproxy启动时提示失败: [ALERT] 146/132210 (3443) : Starting frontend Redis: cannot bind socket [0.0.0.0:637 ...
- iOS 开发笔记-UILable/UIFont/UIButton常见设置
UILabel的常见设置 @property(nonatomic,copy) NSString *text; 显示的文字 @property(nonatomic,retain) UIFont *fon ...
- jstack生成的Thread Dump日志结构解析
1 第一部分:Full thread dump identifier 2 第二部分:Java EE middleware, third party & custom application T ...
- Python: dict setdault函数与collections.defaultdict()的区别
setdault用法 >>>dd={'hy':1,'hx':2} >>>cc=dd.setdefault('hz',1) >>>cc 返 ...
- Python的问题解决: IOError: [Errno 32] Broken pipe
被该问题困扰的人还是挺多的,所以又对这个问题进行了一些更深入的分析,希望可以解决读者的问题新版本:Python 的 Broken Pipe 错误问题分析 遇到一个很奇怪的问题, web.py代码里面报 ...
- Python 运算符与基本数据类型
一.运算符 1.算数运算: 2.比较运算: 3.赋值运算: 4.逻辑运算: 5.成员运算: 二.基本数据类型 1.空(None) 表示该值是一个空对象,空值是Python里一个特殊的值,用None表示 ...