博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UVA 116 Unidirectional TSP (白书dp)
阅读量:4685 次
发布时间:2019-06-09

本文共 1313 字,大约阅读时间需要 4 分钟。

1  /*  2 题目大意:  3 从第一列的任意一格出发,到子最后一列的任意一格,的最短路。(一开是理解错了,以为是到第n行m列那个格子,知道样例没过,才发现)  4 每一格只能这样走   5   6   7   8 而且第一行向上可以走到最后一行,  9 最后一行向下是第一行 10 */ 11 dp[i][j]存储 第[i][j]到一列的最短路 12 状态转移方程为: 13 dp[i][j]=min(dp[i-1][j+1],dp[i][j+1],dp[i+1][j+1]); 14 next[i][j]后继节点 15 #include
16 #define maxn 200 17 #define inf 0xfffffff 18 #include
19 int min(int x,int y) 20 { 21 if(x
m)return inf; 47 if(dp[x][y]!=inf)return dp[x][y]; 48 49 int k; 50 int x1,x2,x3; 51 52 if(x-1==0)d1=n; 53 else d1=x-1; 54 if(x+1>n)d3=1; 55 else d3=x+1; 56 57 x1=dfs(d1,y+1); 58 x2=dfs(x,y+1); 59 x3=dfs(d3,y+1); 60 61 if(x1>=inf&&x2>=inf&&x3>=inf){dp[x][y]=inf;return inf;} 62 else 63 { 64 if(x1
x3) 84 { 85 k=d3; 86 sum=x3; 87 88 } 89 else 90 { 91 if(sum==x3) 92 { 93 k=min(k,d3); 94 } 95 } 96 next[x][y]=k; 97 98 dp[x][y]=dp[k][y+1]+map[x][y]; 99 return dp[x][y];100 101 }102 103 104 105 }106 int GET()107 {108 int k,i,sum=inf;109 for(i=1;i<=n;i++)110 {111 if(dp[i][1]

转载于:https://www.cnblogs.com/acSzz/archive/2012/05/27/2519947.html

你可能感兴趣的文章
asp.net 的三种开发模式
查看>>
Android 交叉编译 IPerf3
查看>>
Android原生Gallery关于图像Orientation的问题
查看>>
Android开发之ViewPager
查看>>
【NOIP2017】列队【可持久化线段树】
查看>>
python学习——通过while循环语句实现九九乘法表的四种表达方式
查看>>
[解题报告] 100 - The 3n + 1 problem
查看>>
MvvmCross[翻译] 使用Xamarin与MvvmCross完成一个跨平台App
查看>>
Entity Framework 学习高级篇1—改善EF代码的方法(上)
查看>>
027-chown命令
查看>>
Python 线程、进程和协程
查看>>
赛普系统自动拨号
查看>>
platform_device与platform_driver
查看>>
[iOS] iPad与iPhone上各种标准控件的大小
查看>>
动态规划(游船费用问题)
查看>>
[原创]Windows利用BitNami搭建Redmine
查看>>
Mybatis逆向工程配置文件详细介绍(转)
查看>>
Linux命令学习一日一命令(RM)
查看>>
5-1
查看>>
一名3年工作经验的程序员应该具备的技能 -- 转载
查看>>