Uva116
来源:互联网 发布:战舰世界库图佐夫数据 编辑:程序博客网 时间:2024/05/19 05:33
注意边界,注意初始化
#include<cctype>#include<cmath>#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>#include<string>#include<queue>#include<stack>#include<set>#include<map>#define REP(i,a,b) for (i=(a);i<=(b);i++)#define CLEAR(a) memset((a),0,sizeof((a)))using namespace std;typedef long long LL;const double pi = acos(-1.0);const int maxn=2e3;const int inf=9999999;int n,m;int a[maxn][maxn],d[maxn][maxn],next[maxn][maxn];void init();void dp();void outp();int main(){ while (~scanf("%d%d",&n,&m)) { init(); dp(); outp(); } return 0;}void dp(){ int ans=inf,first=0; for(int j=n-1;j>=0;j--) { for(int i=0;i<m;i++) { if(j==n-1) d[i][j]=a[i][j]; else { int row[3]={i,i-1,i+1}; if (i==0) row[1]=m-1; if(i==m-1) row[2]=0; sort(row,row+3); d[i][j]=inf; for(int k=0;k<3;k++) { int v=d[row[k]][j+1]+a[i][j]; if(v<d[i][j]){d[i][j]=v;next[i][j]=row[k];} } } if (j==0&&d[i][j]<ans) {ans=d[i][j];first=i;} } printf("%d",first+1); for(int i=next[first][0],j=1;j<n;i=next[i][j],j++) printf(" %d",i+1); printf("\n%d\n",ans); }}void init(){ for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) cin>>a[i][j]; CLEAR(d);CLEAR(next);}void outp(){}
0 0
- Uva116
- UVa116
- uva116
- uva116
- uva116
- uva116
- UVA116
- UVA116
- UVA116
- UVa116
- uva116
- dp--uva116
- uva116(DP)
- UVa116 Unidirectional TSP
- UVa116 Unidirectional TSP
- UVA116 Unidirectional TSP
- uva116 unidirectional TSP
- Uva116 Unidirectional TSP
- 指针的注意用法(持续中)
- Android init.rc文件浅析 service class 选项
- [raspberry pi] multi-room synchronized speaker system
- 连锁可以做吗?
- Innobackupex 全备数据库
- Uva116
- Android开发笔试题及答案
- d3学习之(Data Visualization with d3.js Cookbook )(第四章)-3
- CDH5安装LZO压缩机制
- mac下,在idea中查看jdk源码
- QtQuick——图像、状态和动画
- 当当·亚马逊·京东等加密的电子书转为PDF
- struts result
- android 拖动条(SeekBar)