• [恢]hdu 2086


    2011-12-20 04:48:49

    地址:http://acm.hdu.edu.cn/showproblem.php?pid=2086

    题意:中文。

    mark:由Ai = (Ai-1 + Ai+1)/2 - Ci 得Ai=2(Ai-1+Ci-1)-Ai-2。

    用a0、a1和c来表示Ai,递推求得An+1=a0*A0+a1*A1+C。解方程。

    代码:

    # include <stdio.h>
    # include <string.h>


    typedef struct NODE{
    double a0, a1 ;
    double c ;
    }NODE ;


    NODE node[3010] ;
    double c[3010] ;
    int n ;


    double calc(double a, double b)
    {
    int i ;
    memset(node, 0, sizeof(node)) ;
    node[0].a0 = node[1].a1 = 1 ;
    for (i = 2 ; i <= n+1 ; i++)
    {
    node[i].a0 = 2*node[i-1].a0 - node[i-2].a0 ;
    node[i].a1 = 2*node[i-1].a1 - node[i-2].a1 ;
    node[i].c = 2 * node[i-1].c - node[i-2].c + 2*c[i-1] ;
    }
    return (b - a*node[n+1].a0 - node[n+1].c)/node[n+1].a1 ;
    }


    int main ()
    {
    int i ;
    double a, b ;
    while (~scanf ("%d", &n))
    {
    scanf ("%lf%lf", &a, &b) ;
    for (i = 1 ; i<= n ; i++)
    scanf ("%lf", &c[i]) ;
    printf ("%.2lf\n", calc(a,b)) ;
    }
    return 0 ;
    }



  • 相关阅读:
    作业16
    递归函数
    三元表达式与生成式
    迭代器与生成器
    作业15
    装饰器
    作业14
    string的入门与进阶
    修理牧场(优先队列)
    旅游规划
  • 原文地址:https://www.cnblogs.com/lzsz1212/p/2315254.html
Copyright © 2020-2023  润新知