49 条题解
-
0St.Evil LV 3 @ 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!
-
02008-07-17 23:44:44@
很明显…………数据错误
-
02008-07-17 22:59:36@
不厚道, 这道题目是GDOI1999的某题.......
但是数据光盘上提供的数组有2-3个点是错的, 好像少了几个字符....
这题的数据....如何?我看了一下, 果然这道题目用了错误数据....
-
02008-07-17 20:58:13@
我在遥望,月亮之上
-
02008-07-17 20:51:58@
高精度二分枚举
-
02008-07-17 13:04:07@
地下室
-
02008-07-17 13:01:09@
唉,现在的年轻人啊...
-
-12017-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; } } } }
-
-12016-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