JAVA大数|JAVA高精度
菜圾
Hi, it's your Accepted !
展开
-
HDU5973 - 2016 ACM-ICPC Dalian - C - Game of Taking Stones - (威佐夫博弈,牛顿法,JAVA高精度)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5973题意:给出两堆石头的个数a和b(a,b小于等于10^100),两个人轮流拿石头,两个人轮流从某一堆或同时从两堆中取同样多的任意数量的物品,最后取光者得胜。解析:标准威佐夫博弈,只不过这里给的数很大,所以用java大数来做。而用JAVA大数来做面临一个问题:BigInteger没有sqr...原创 2018-10-03 20:39:08 · 361 阅读 · 0 评论 -
牛顿法开根号模板
有时在用JAVA大数BigInteger时会面临一个问题:BigInteger没有sqrt函数。这里可以用牛顿法来求一个精度较高的sqrt(C),操作用JAVA的BigDecimal来实现。牛顿法如下(见《数值分析》课本):对于给定的正数C,应用牛顿法解二次方程。X^2-C=0; 可导出求开方值sqrt(C)的计算程序:x_k+1=1/2*(x_k+C/x_k);例如求sqrt(...原创 2018-10-03 20:48:02 · 1389 阅读 · 0 评论 -
HDU 5920 - 2016 CCPC 长春 - J.Ugly Problem - (模拟,字符串)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5920题意:给出长度为1000的10进制数n,让你用小于50个回文数来组成n。解析:考虑怎么构造较大的且尽可能接近n的回文串?拿出串n的前半部分,将其-1,然后对折到后半部分形成的回文数就是较为合适的一个累加项。然后减去这个累加项,递归处理差就好。然后对于100以内的数特殊处理作为递归边界。...原创 2018-11-01 13:43:01 · 291 阅读 · 0 评论