P1487 失落的成绩单
Posted mysh
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了P1487 失落的成绩单相关的知识,希望对你有一定的参考价值。
题目背景
谁都知道,录成绩是件麻烦事,可MC却把成绩单丢了……
题目描述
这一天老师要查第m个同学的成绩,为了不挨批-),MC努力回想,想起成绩单上的一个规律:
若把成绩看作是一个实数数列,则Ai=((Ai-1)-(Ai+1))/2+d,(就是每一项为其前后两项之差除以二再加d)。此时,我告诉了MC一共N项的数列首项A1和末项An,以及d。剩下的靠你了!
输入格式
第一行是N(N<60),m
第二行依次是d,A1,An
输出格式
Am(保留三位小数)
输入输出样例
输入 #1
53 23 0.543 1.213 9768.134
输出 #1
0.543
说明/提示
各个测试点1s
不要支着脑袋空想^-^
思路
代码
#include<cmath> #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; const double eps=1e-12; int n,m; double d,a[110],an; bool check() for(int i=3; i<=n; i++) a[i]=a[i-2]-2*(a[i-1]-d); return a[n]>=an; int main () scanf("%d%d",&n,&m); scanf("%lf%lf%lf",&d,&a[1],&an); double l=-1e12,r=1e12; while(r-l>eps) a[2]=(l+r)/2; if(check()) if(n&1) l=a[2]; else r=a[2]; else if(n&1) r=a[2]; else l=a[2]; printf("%.3lf\n",a[m]); return 0;
以上是关于P1487 失落的成绩单的主要内容,如果未能解决你的问题,请参考以下文章
SQL语句查询每个学生的学号、姓名、平均成绩、最高成绩和最低成绩