您的位置:首页 > 其它

[牛顿法 || 二分] BZOJ 1213 [HNOI2004]高精度开根 & 51Nod 1166 大数开平方

2016-07-08 19:50 357 查看
可以看贴吧的讨论:http://tieba.baidu.com/p/2873435742

牛顿法 %%%hqztrue

<span style="font-family:Microsoft YaHei;font-size:14px;color:#000066;">import sys
m=int(input())
n=int(input())
if n==0:
print 0
sys.exit()
_n=n;len=0
while _n>0:
_n/=10;len+=1
base=300
wei=len/m
now=len%m
while (now+m<=base)and(wei>0):
now+=m;wei-=1
div=1
for i in range(wei*m):div*=10
_n=n/div
_f=float(_n)**(1.0/m)
x=int(_f)
for i in range(wei):x*=10
while True:
_x=x
x=x+x*(n-x**m)/(n*m)
if x==_x:break
while (x+1)**m<=n:
x=x+1
print x

</span>


二分也很兹瓷啊

<span style="font-family:Microsoft YaHei;font-size:14px;color:#000066;">m,n=input(),input()
l,r=0,1
while r**m<=n:
l=r
r=r*2
while l<r:
mid=(l+r+1)//2
if mid**m<=n:
l=mid
else:
r=mid-1
print l
</span>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: