Python-Project Euler 82

来源:互联网 发布:新歌声网络战队直播 编辑:程序博客网 时间:2024/06/07 23:17




file=open('e:\\matrix.txt')
f=file.read()
s=f.split('\n')
s.pop()


a=[[0 for i in range(85)]for j in range(85)]
dp=[[0 for i in range(85)]for j in range(85)]
vis=[[0 for i in range(85)]for j in range(85)]


for i in range(80):
    a[i]=s[i].split(',')


for i in range(80):
    for j in range(80):
        a[i][j]=int(a[i][j])




for i in range(80):
    dp[i][0]=a[i][0]


for i in range(1,80):  #列
    print(i)
    for j in range(80): #行
        dp[j][i]=dp[j][i-1]+a[j][i]
    
    tot=0
    while tot<80:
        Min=999999999999
        Minj=-1
        for j in range(80):
            if vis[j][i]==0 and dp[j][i]<Min:
                Min=dp[j][i]
                Minj=j  #第j行
        vis[Minj][i]=1
        tot+=1
        ja=Minj-1
        jb=Minj+1
        if ja>=0 and dp[Minj][i]+a[ja][i]<dp[ja][i]:
            dp[ja][i]=dp[Minj][i]+a[ja][i]
        if jb<80 and dp[Minj][i]+a[jb][i]<dp[jb][i]:
            dp[jb][i]=dp[Minj][i]+a[jb][i]


Mins=999999999999      
for i in range(80):
    print(dp[i][79])
    if dp[i][79]<Mins:
        Mins=dp[i][79]


print(' ',Mins)


file.close()
0 0
原创粉丝点击