UVA 116——Unidirectional TSP
2015-11-25 09:40
267 查看
题意:给定一个n*m的矩阵,从第一列任意位置向右,右下,右上走一格,可以循环,要求经过的数字的和最小。
思路:记忆化搜索。每次有三个状态,从这三个状态中选择出最优的一个,然后状态累加,保存路径。
code:
#include <bits/stdc++.h>
using namespace std;
const int N=11;
const int M=105;
#define ft(i,s,t) for (int i=s;i<=t;i++)
#define frt(i,t,s) for (int i=t;i>=s;i--)
int g
[M],s
[M];
int main()
{
int n,m,t,tt;
while (~scanf("%d %d",&n,&m))
{
ft(i,0,n-1) ft(j,0,m-1) scanf("%d",&g[i][j]);
frt(j,m-2,0) ft(i,0,n-1)
{
int bt=(i+n-1)%n;
if (g[i][j+1]<g[bt][j+1]||g[i][j+1]==g[bt][j+1]&&bt>i) bt=i; //右上和直走的最优解
int t=(i+1)%n;
if (g[t][j+1]<g[bt][j+1]||g[t][j+1]==g[bt][j+1]&&bt>t) bt=t;//右下和全部
g[i][j]+=g[bt][j+1];s[i][j]=bt; //状态记忆和保存路径
}
int p=n-1;
frt(i,n-2,0) if (g[p][0]>=g[i][0]) p=i;
int ans=g[p][0];
ft(i,0,m-2)
{
printf("%d ",p+1);
p=s[p][i];
}
printf("%d\n%d\n",p+1,ans);
}
}
思路:记忆化搜索。每次有三个状态,从这三个状态中选择出最优的一个,然后状态累加,保存路径。
code:
#include <bits/stdc++.h>
using namespace std;
const int N=11;
const int M=105;
#define ft(i,s,t) for (int i=s;i<=t;i++)
#define frt(i,t,s) for (int i=t;i>=s;i--)
int g
[M],s
[M];
int main()
{
int n,m,t,tt;
while (~scanf("%d %d",&n,&m))
{
ft(i,0,n-1) ft(j,0,m-1) scanf("%d",&g[i][j]);
frt(j,m-2,0) ft(i,0,n-1)
{
int bt=(i+n-1)%n;
if (g[i][j+1]<g[bt][j+1]||g[i][j+1]==g[bt][j+1]&&bt>i) bt=i; //右上和直走的最优解
int t=(i+1)%n;
if (g[t][j+1]<g[bt][j+1]||g[t][j+1]==g[bt][j+1]&&bt>t) bt=t;//右下和全部
g[i][j]+=g[bt][j+1];s[i][j]=bt; //状态记忆和保存路径
}
int p=n-1;
frt(i,n-2,0) if (g[p][0]>=g[i][0]) p=i;
int ans=g[p][0];
ft(i,0,m-2)
{
printf("%d ",p+1);
p=s[p][i];
}
printf("%d\n%d\n",p+1,ans);
}
}
相关文章推荐
- TYVJ1193 括号序列解题报告
- TYVJ上一些DP的解题报告
- The Triangle
- 滑雪
- POJ1088滑雪(入门级DP)
- Hdu 5325 2015多校对抗赛三
- nbut 1545 New Year 2014 数位dp
- hdu3779 Railroad 记忆化搜索
- UVA 12295 Optimal Symmetric Paths
- 【Jason's_ACM_解题报告】矩形嵌套(NYOJ16)
- 【Jason's_ACM_解题报告】The Triangle(POJ1163)
- HDU1142——A Walk Through the Forest(spfa+记忆化搜索)
- dp记忆化搜索
- hdu1142 dijstra + 记忆化搜索
- ACM入门题目(北大ACM教材)
- Basic Wall Maze
- poj1088 滑雪
- uva679 Dropping Balls 入门经典II 第六章数据结构基础 例题6-6
- uva839 - Not so Mobile 入门经典II 第六章数据结构基础 例题6-9
- uva120 Stacks of Flapjacks 入门经典II 第八章例题8-1