这个题题意是找一条穿过矩阵的路线使得所穿过路线的数字之和最小(只能往右或者下走)
思路:这个题可以参考三角阵的解法,逆推最小通行费的 状态转移方程为:
f[i][j]=min(f[i-1][j]+f[i][j-])+a[i][j]
代码:
#include<iostream>
#include<cmath>
using namespace std;
int a[101][101],b[101][101];
int main()
{
int i,j,k,l,m,n,x,y;
cin>>n;
for (i=1;i<=n;i++)
for (j=1;j<=n;j++)
{
cin>>a[i][j];
b[i][j]=0;
}
b[1][1]=a[1][1];
for (i=2,j=1;i<=n;i++)
b[i][j]=b[i-1][j]+a[i][j];
for (j=2,i=1;j<=n;j++)
b[i][j]=b[i][j-1]+a[i][j];
for (i=2;i<=n;i++)
for (j=2;j<=n;j++)
{
b[i][j]=min(b[i-1][j],b[i][j-1])+a[i][j];
}
cout<<b[n][n]<<endl;
}
19: 最低通行费最近的提交
提交人 | 班级 | 结果 | 内存 | 时间 | 代码长度 | 语言 | 提交时间 |
20164133 | 16计开发 | Accepted | 200kB | 0ms | 516 B | G++ | 23小时前 |
4159陈文豪 | 16计开发 | Accepted | 320kB | 3ms | 552 B | G++ | 昨天 |
荆慧 | 16计算机 | Accepted | 200kB | 0ms | 849 B | G++ | 昨天 |
20164131 | Accepted | 200kB | 0ms | 585 B | G++ | 昨天 | |
刘文亚20164367 | 16网络 | Accepted | 328kB | 0ms | 504 B | G++ | 昨天 |
20167915 | 16信息 | Accepted | 200kB | 1ms | 599 B | G++ | 昨天 |
20164395 | 16信息 | Accepted | 2368kB | 2ms | 458 B | G++ | 昨天 |
李双智 | Accepted | 200kB | 4ms | 427 B | G++ | 昨天 | |
20167915 | 16信息 | Wrong Answer | 164kB | 0ms | 619 B | G++ | 昨天 |
梁琪尧20164313 | 16网络 | Accepted | 328kB | 1ms | 468 B | G++ | 昨天 |