蓝桥杯第十一届决赛真题之皮亚诺曲线距离
蓝桥杯第十一届决赛真题之皮亚诺曲线距离python借鉴了https://www.cnblogs.com/EchoZQN/p/14829144.html的做法然而同样的想法,python代码提交之后只能得40分,C++则能满分,不知道具体原因是什么,把python代码放在这里,希望大佬指正。n=int(input())a=list(map(int,input().split()))b=list(ma
·
蓝桥杯第十一届决赛真题之皮亚诺曲线距离python
借鉴了https://www.cnblogs.com/EchoZQN/p/14829144.html的做法
然而同样的想法,python代码提交之后只能得40分,C++则能满分,不知道具体原因是什么,把python代码放在这里,希望大佬指正。
n=int(input())
a=list(map(int,input().split()))
b=list(map(int,input().split()))
def bm(k,x,y):
if (k==0): return 1
lens=3**k
cnt=(3**(k*2))/9
if (x<(lens/3)):
if (y<lens/3):
return bm(k-1,x,y)
if(y<lens*2/3):
return cnt+bm(k-1,lens/3-1-x,y-lens/3)
return cnt*2+bm(k-1,x,y-lens/3*2)
elif(x<lens*2/3):
if (y<lens/3):
return cnt*5+bm(k-1,x-lens/3,lens/3-1-y)
elif(y<lens*2/3):
return cnt*4+bm(k-1,lens*2/3-1-x,lens*2/3-1-y)
return cnt*3+bm(k-1,x-lens/3,lens-1-y)
else:
if (y<lens/3):
return cnt*6+bm(k-1,x-lens*2/3,y)
elif(y<lens*2/3):
return cnt*7+bm(k-1,lens-1-x,y-lens/3)
return cnt*8+bm(k-1,x-lens*2/3,y-lens*2/3)
ans1=bm(n,a[0],a[1])
ans2=bm(n,b[0],b[1])
ansu=abs(ans1-ans2)
print(int(ansu))
更多推荐
所有评论(0)