hdu 5569
来源:互联网 发布:python可以写界面么 编辑:程序博客网 时间:2024/06/09 23:46
matrix
For each cases, first come 2 integers,
N+m is an odd number.
Then follows
2 31 2 32 2 12 32 2 11 2 4
48
题意:给定n和m,n为行数,m为列数,让我们从(1,1)走到(n,m),其中走奇数步时,运算的是该项的值和后一项的乘积,走偶数步时,运算的是该项的值和后一项的和,让我们求出到达终点时,我们求出的值最小
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
int a[1003][1003],dp[1003][1003];
int n,m;
int min(int a,int b)
{
return a>b?b:a;
}
int main()
{
int i,j,sum;
while(scanf("%d%d",&n,&m)!=EOF)
{
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
scanf("%d",&a[i][j]);
}
}
memset(dp,1,sizeof(dp));
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
sum=i+j;
if(sum%2!=0)
{
dp[i][j]=min(dp[i-1][j]+a[i-1][j]*a[i][j],dp[i][j-1]+a[i][j-1]*a[i][j]);//当i+j为奇数时,前面走过的步数为奇数,所以它有可能是从上面过来,也可能是从左边过来
}else{
dp[i][j]=min(dp[i-1][j],dp[i][j-1]);//当i+j为偶数时,前面走过的步数为偶数,此时我们求的值还没有变化
}
if(i==1 && j==1)
{
dp[i][j]=0;//在最开始的点,还未运动,所以dp[i][j]=0
}
}
}
printf("%d\n",dp[n][m]);
}
return 0;
}
- hdu 5569
- hdu 5569 简单dp
- HDU 5569 matrix
- HDU 5569 matrix(DP)
- hdu 5569 ***matrix
- hdu 5569 matrix(dp)
- hdu-5569-matrix-dp
- hdu 5569(dp)
- hdu 5569 DP
- hdu 5569 matrix【dp】
- HDU 5569 matrix
- hdu
- hdu
- HDU
- hdu ()
- hdu
- hdu
- HDU
- Cloudfoundry 实践进阶
- storyboard : 在 UITableViewController 中使用自定义
- 私人通讯录
- MySQL的复制和临时表Temporary Table
- 通过Docker源安装最新版本
- hdu 5569
- linux /proc/loadavg(平均负载)
- 数据存储
- 数值中的一些方法概述
- BZOJ1208: [HNOI2004]宠物收养所 Splay
- UITabBarContro的笔记
- 《剑指offer》——数字在排序数组中出现的次数
- 将普通用户加入sudoers中
- PHP abs()函数