码迷,mamicode.com
首页 > 其他好文 > 详细

POJ 1759(二分

时间:2015-06-18 21:35:52      阅读:103      评论:0      收藏:0      [点我收藏+]

标签:

题意还是需要看原题,不好描述。

实际上这个题只需要注意一点,就是把关系式改成递推式,然后就可以发现第二项完全决定了后面的位置,所以二分第二项的高度即可。

技术分享
import java.util.*;
import java.io.*;
import java.math.*;

public class Main {
    public static final int maxv = 200005;
    public static final int shift = 100000;
    static int N;
    static double A;

    public static void main(String[] args) throws Exception {
        Scanner in = new Scanner(new File(
                "/home/develop/eclipse_file/ACMproject/src/in"));
        // Scanner in=new Scanner(System.in);
        N=in.nextInt();
        A=in.nextDouble();
        double l=A,r=0;
        double ansl=1e10,ansl2=0;
        while(Math.abs(ansl-ansl2)>0.001){
            double mid=(l+r)/2;
            double res=check(mid);
            if(res>0){
                l=mid;
                ansl2=ansl;
                ansl=res;
            }else{
                r=mid;
            }
        }
        System.out.printf("%.2f\n",ansl);
        in.close();
    }
    static double check(double a2){
        double now=0;
        double a1=A;
        int i;
        for(i=3;i<=N;i++){
            now=2*a2-a1+2;
            a1=a2;
            a2=now;
            if(now<0) return -1;
        }
        return now;
    }
}
View Code

 

POJ 1759(二分

标签:

原文地址:http://www.cnblogs.com/Cw-trip/p/4586742.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!