https://www.luogu.org/problemnew/show/P2293

要求求出给定高精度整数的非负根取整的结果。

还有神仙用Python的浮点pow运算骗到不少分的。

唉!

那么我们使用保险的语言:Java,需要怎么做呢?

高精度数是10的10000次方,他的根应该在10的100次方附近?(题目没说是平方根啊,乱搞!)

我们先读入一个String,数出String有多少位,在这个位数的左右至多4位范围进行二分答案。

自己瞎搞了很久,不是T就是M的,还以为是语言的劣势。

其实是自己的二分的范围过大了。(至少限制一下r,当k比较大的时候r是很小的,k比较大的时候大数的乘方运算开销大,节省的时间就多很多了)

像神仙那样先用logn缩小范围就挺好内存80MB,速度是2.5秒。

由于跑得飞快,实际上还可以加入cnt-gc大法。设置cnt模100,内存降至40MB,速度是4秒。

但是Python只需要0.5秒和4MB哦!据说是因为Python的底层是用C语言实现的!(但是不限制二分范围也只是比Java多过一个点)

(还好大部分icpc应该对每种语言是公平的)

import java.util.*;
import java.math.*; public class Main {
static int k;
static BigInteger n;
public static void main(String args[]) {
Scanner sc=new Scanner(System.in); k=sc.nextInt();
n=sc.nextBigInteger(); if(k==1) {
System.out.println(n);
return;
} BigInteger l=BigInteger.ZERO,r=BigInteger.ONE;
while(r.pow(k).compareTo(n)<=0) {
l=r;
r=r.shiftLeft(1);
} BigInteger m=null; while(l.add(BigInteger.ONE).compareTo(r)<0) {
m=(l.add(r)).shiftRight(1);
int res=m.pow(k).compareTo(n);
if(res<=0) {
l=m;
}
else {
r=m;
}
//System.gc();
} if(l.pow(k).compareTo(n)<=0)
System.out.println(l);
else
System.out.println(r);
sc.close();
} }

最新文章

  1. [BI项目记]-新任务创建
  2. HTML CSS SPRITE 工具
  3. hdu2068RPG的错排
  4. jboss7 添加虚拟目录 上传文件路径
  5. cdev成员结构体file_operations文件操作结构的分析
  6. 一个Solr搜索实例,增删改查+高亮+分页
  7. (转)Ubuntu中让终端对于历史输出的内容保持足够长
  8. Kmeans聚类算法
  9. 业务逻辑 : 未完 : easybook.com
  10. input输入框自动填充黄色背景解决方案
  11. js中防止全局变量被污染的方法
  12. 微博爬虫“免登录”技巧详解及 Java 实现(业余草的博客)
  13. 基于BootstarbTable实现加载更多的方式
  14. Guest Editors’ Introduction: Special Issue on Advances in Management of Softwarized Networks
  15. python 并发编程 锁 / 信号量 / 事件 / 队列(进程间通信(IPC)) /生产者消费者模式
  16. Event Recommendation Engine Challenge分步解析第四步
  17. LeetCode--326--3的幂
  18. v-charts使用心得
  19. Python3 贝叶斯分类
  20. 前端自动化grunt轻松入门

热门文章

  1. Koala - 使用
  2. oracle user locke
  3. lodar
  4. 赵雅智_SimpleCursorAdapter
  5. 获取IOS应用安装列表
  6. xamarin.android listview绑定数据及点击事件
  7. 4.改变eclipse选中文字颜色
  8. 使用TASM编译COFF格式和连接
  9. golang-----golang sync.WaitGroup解决goroutine同步
  10. repo 工具下载 以及 android代码下载【转】