POJ2413二分
来源:互联网 发布:中超数据直播系统 编辑:程序博客网 时间:2024/06/06 10:39
注意二分, 上界。
import java.beans.beancontext.BeanContext;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.PrintWriter;import java.io.StreamTokenizer;import java.math.BigInteger;import java.util.ArrayList;import java.util.Arrays;import java.util.Collections;import java.util.Comparator;import java.util.Scanner;import java.util.Stack;import java.util.StringTokenizer;public class Main{ public static void main(String[] args) throws IOException{ InputReader in = new InputReader(System.in) ; StreamTokenizer cin = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in))); PrintWriter out = new PrintWriter(System.out); BigInteger f ; BigInteger f1 = BigInteger.valueOf(1) ; BigInteger f2 = BigInteger.valueOf(2) ; BigInteger up = BigInteger.valueOf(10).pow(100) ; ArrayList<BigInteger> fibo = new ArrayList<BigInteger>() ; fibo.add(f1) ; fibo.add(f2) ; for( ; (f = f1.add(f2) ).compareTo(up) <= 0 ; ){ fibo.add(f) ; f1 = f2 ; f2 = f ; } fibo.add(f1.add(f2)) ; for(;;){ int t = 0 ; f1 = new BigInteger(in.next()) ; f2 = new BigInteger(in.next()) ; if(f1.compareTo(BigInteger.ZERO) == 0 && f2.compareTo(BigInteger.ZERO) == 0) break ; int l = 0 , r = fibo.size() - 1 , mid , lid = 0 , rid = 0 ; while(l <= r){ mid = (l + r) >> 1 ; if(fibo.get(mid).compareTo(f1) >= 0){ lid = mid ; r = mid - 1 ; } else l = mid + 1 ; } l = 0 ; r = fibo.size() - 1 ; while(l <= r){ mid = (l + r) >> 1 ; if(fibo.get(mid).compareTo(f2) <= 0){ rid = mid ; l = mid + 1 ; } else r = mid - 1 ; } out.println(rid - lid + 1) ; //out.flush() ; } out.flush() ; }}class InputReader { public BufferedReader reader; public StringTokenizer tokenizer; public InputReader(InputStream stream) { reader = new BufferedReader(new InputStreamReader(stream), 32768); tokenizer = null; } public String next(){ while(tokenizer == null || !tokenizer.hasMoreTokens()){ try{ tokenizer = new StringTokenizer(reader.readLine()); }catch(IOException e){ throw new RuntimeException(e); } } return tokenizer.nextToken(); } public int nextInt() { return Integer.parseInt(next()); } public double nextDouble() { return Double.parseDouble(next()); }}
0 0
- POJ2413二分
- poj2413
- POJ2413 How many Fibs?【高精度】【二分】
- POJ2413 How many Fibs(高精度)(AC)
- poj2413 java处理Fibonacci数前500位
- 二分
- 二分
- 二分
- 二分
- 二分
- 二分。
- 二分
- 二分
- 二分
- 二分
- 二分
- 二分
- 二分
- 自用单例版 Singleton
- [华为机试练习题]30.计算整数的位数
- Android 点击按钮隐藏键盘
- 用intellij开发scala
- 【故障解决】Ubuntu 登陆黑屏,无限卡在登陆页面的解决方法
- POJ2413二分
- ARM开发详解电子书在线阅读
- Java新技术---线程学习之Callable与Future的应用
- LeetCode Merge Sorted Array
- WEB服务器与应用服务器的区别
- 运用Detours库hook API
- 动态规划
- HttpPost目的就是加载时第2次,第3次,第n次执行的方法 还有一个就是[httpGet] 是第一次加载的时候指定调用的
- LintCode 字符串查找