题解

49 条题解

  • 0
    @ 2008-07-29 23:41:35

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ├ 测试数据 07:答案正确... 0ms

    ├ 测试数据 08:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    挺严重的数据错误。。。谢谢conan!

  • 0
    @ 2008-07-17 23:44:44

    很明显…………数据错误

  • 0
    @ 2008-07-17 22:59:36

    不厚道, 这道题目是GDOI1999的某题.......

    但是数据光盘上提供的数组有2-3个点是错的, 好像少了几个字符....

    这题的数据....如何?

    我看了一下, 果然这道题目用了错误数据....

  • 0
    @ 2008-07-17 20:58:13

    我在遥望,月亮之上

  • 0
    @ 2008-07-17 20:51:58

    高精度二分枚举

  • 0
    @ 2008-07-17 13:04:07

    地下室

  • 0
    @ 2008-07-17 13:01:09

    唉,现在的年轻人啊...

  • -1
    @ 2017-08-19 09:49:38

    java大整数有奇效

    
    package com.company;
    import java.math.BigInteger;
    import java.math.BigDecimal;
    import java.util.Scanner;
    public class Main {
        static Scanner in = new Scanner(System.in);
        public static BigInteger f(BigInteger p,BigInteger n){
            return p.pow(3).add(p.pow(2)).add(p.multiply(BigInteger.valueOf(3))).subtract(n);
        }
    
        public static void main(String[] args) {
            BigInteger n;
            n=in.nextBigInteger();
            BigInteger l=BigInteger.ZERO;
            BigInteger r=BigInteger.valueOf(10).pow(80);
    
            BigInteger mid;
    
    
            while(true){
                mid=l.add(r).divide(BigInteger.valueOf(2));
                if (f(mid,n).compareTo(BigInteger.ZERO)==1){
                    //>0
                    if (r.compareTo(mid)==0){
                        System.out.println(mid);
                        break;
                    }
                    r=mid;
                }else if (f(mid,n).compareTo(BigInteger.ZERO)==-1){
                    if (l.compareTo(mid)==0){
                        System.out.println(mid);
                        break;
                    }
                    l=mid;
                }else{
                    System.out.println(mid);
                    break;
                }
            }
    
    
        }
    }
    
    
  • -1
    @ 2016-11-17 22:33:21

    python大法好。。。
    n=int(raw_input())
    l=0
    r=n
    while l<r:
    mid=(l+r)/2
    if mid==l:
    print l
    exit(0)
    if mid*mid*mid+mid*mid+3*mid>n:
    r=mid
    else:
    l=mid

信息

ID
1375
难度
6
分类
高精度 | 其他 | 二分查找 点击显示
标签
(无)
递交数
1174
已通过
339
通过率
29%
被复制
4
上传者