Python-Project Euler 83
2014-01-22 03:05
218 查看
a=[[0 for i in range(85)]for j in range(85)]
dp=[[999999999 for i in range(85)]for j in range(85)]
vis=[[0 for i in range(85)]for j in range(85)]
tot=0
list=[]
Mini=-1
Minj=-1
Min=9999999999
dx=[1,-1,0,0]
dy=[0,0,1,-1]
def find():
global Mini
global Minj
global Min
Mini=-1
Minj=-1
Min=9999999999
for w in range(len(list)):
i=list[w][0]
j=list[w][1]
for k in range(4):
nx=i+dx[k]
ny=j+dy[k]
if nx>=0 and nx<80 and ny>=0 and ny<80 and vis[nx][ny]==0 and dp[i][j]+a[nx][ny]<Min:
Min=dp[i][j]+a[nx][ny]
Mini=nx
Minj=ny
def update():
global tot
global Min
x=Mini
y=Minj
dp[x][y]=Min
vis[x][y]=1
list.append([x,y])
tot+=1
print('第',tot,'个确定:(',x,',',y,')')
if x==79 and y==79:
return True
else:
return False
file=open('e:\\matrix.txt')
f=file.read()
s=f.split('\n')
s.pop()
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])
vis[0][0]=1
dp[0][0]=a[0][0]
tot+=1
list.append([0,0])
while tot<6400:
find() #找到最小的位置
if update()==True: #更新
break
print('bingo: ',dp[79][79])
file.close()
dp=[[999999999 for i in range(85)]for j in range(85)]
vis=[[0 for i in range(85)]for j in range(85)]
tot=0
list=[]
Mini=-1
Minj=-1
Min=9999999999
dx=[1,-1,0,0]
dy=[0,0,1,-1]
def find():
global Mini
global Minj
global Min
Mini=-1
Minj=-1
Min=9999999999
for w in range(len(list)):
i=list[w][0]
j=list[w][1]
for k in range(4):
nx=i+dx[k]
ny=j+dy[k]
if nx>=0 and nx<80 and ny>=0 and ny<80 and vis[nx][ny]==0 and dp[i][j]+a[nx][ny]<Min:
Min=dp[i][j]+a[nx][ny]
Mini=nx
Minj=ny
def update():
global tot
global Min
x=Mini
y=Minj
dp[x][y]=Min
vis[x][y]=1
list.append([x,y])
tot+=1
print('第',tot,'个确定:(',x,',',y,')')
if x==79 and y==79:
return True
else:
return False
file=open('e:\\matrix.txt')
f=file.read()
s=f.split('\n')
s.pop()
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])
vis[0][0]=1
dp[0][0]=a[0][0]
tot+=1
list.append([0,0])
while tot<6400:
find() #找到最小的位置
if update()==True: #更新
break
print('bingo: ',dp[79][79])
file.close()
相关文章推荐
- 关于windows7安装python、pip、virtualenv
- Python-Project Euler 82
- 使用go和python递归删除.ds store文件的方法
- 使用python的chardet库获得文件编码并修改编码
- 忘记ftp密码使用python ftplib库暴力破解密码的方法示例
- python使用rsa加密算法模块模拟新浪微博登录
- python检测lvs real server状态
- 关于冒泡排序算法的几种实现
- Python-Project Euler 81
- Python处理JSON
- 掌阅科技(ireader)年薪25w—45w 诚聘python高手,如果很牛可再议 - V2EX
- python 的内存管理
- Python 语法基础
- Python 元组与圆括号使用风格
- Python基础(6) - 基本语句
- Python面向对象特征总结
- Python中globals对象的回收顺序分析
- [批量主机存活扫描工具scanhost]扫描主机存活[python版本,非nmap版本]
- python 学习笔记9-----函数
- python&nbsp;os模块[转]