problem
給定n個點的座標(x,y,z),且n<=50,從點1出發,怎麼樣才能走一條路徑,訪問每個點一次且僅一次,使走過的距離和最小?
input
多組資料. 第1行n,然後n行3個整數座標
output
每組一行,代表最小權和
sample input
30 0 0
1 1 0
1 -1 0
sample output
3.4source
a great beloved and my gate to freedom
import math
inf=1000000
class point:
def __init__(self,x,y,z):
self.x,self.y,self.z=x,y,z
def dis(a,b):
return math.sqrt((a.x-b.x)**2+(a.y-b.y)**2+(a.z-b.z)**2)
points=[point(0,0,0),point(1,1,0),point(1,-1,0)]
def minpath_dis(points):
if len(points)==2:
return dis(points[0],points[1])
s=points[0]
m=inf
for i in xrange(1,len(points)-1):
m=min(m,dis(s,points[i])+minpath_dis(points[i:]+points[1:i]))
return m
print minpath_dis(points)
小演算法題 4
在黑板上寫了n個正整數組成的乙個數列,進行如下操作 每次擦去其中的兩個數a和b,然後在數列中加入乙個數a b 1,如此下去直至黑板上 剩下乙個數,在所有按這種操作方式最後得到的數中,最大的為max,最小的為min,則該數列的極差定義為m max min。請你程式設計,對於給定的數列,計算極差。exa...
演算法刷題(7)
題目一 假定你使用svm學習資料x,資料x裡面有些點存在錯誤。現在如果你使用乙個二次核函式,多項式階數為2,使用懲罰因子c作為超參之一。當你使用較大的c c趨於無窮 則 a仍然能正確分類資料b 不能正確分類c 不確定d 以上均不正確解析 正確答案是 a,採用更大的c,誤分類點的懲罰就更大,因此決策邊...
刷題演算法小技巧
1.大數取餘 對於較大數快速取餘 引數 char s 為儲存大數的陣列 modnumber 為mod long long modnumber char s,int modnumber return sum 2.快速冪 極大數 取餘 對於較大數快速取餘 引數 a的b次方 對 c 取餘 long lon...