题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5569

简单dp,恶心的边界处理,无语;

if((i+j)%2==1)

dp[i][j]=a[i-1][j]*a[i][j]+min(dp[i-2][j], dp[i-1][j-1]);
dp[i][j]=min(dp[i][j], a[i][j-1]*a[i][j]+min(dp[i-1][j-1], dp[i][j-2]));

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<map>
#include<cmath>
#include<queue>
using namespace std;
#define N 1005
#define INF 0x3f3f3f3f int a[N][N],dp[N][N], m, n; int main()
{
while(scanf("%d %d", &m, &n)!=EOF)
{
for(int i=; i<N; i++)
for(int j=; j<N; j++)
dp[i][j]=INF; for(int i=; i<=m; i++)
for(int j=; j<=n; j++)
scanf("%d", &a[i][j]); dp[][]=;
dp[][]=a[][]*a[][];
dp[][]=a[][]*a[][];
for(int i=; i<=m; i++)
{
dp[i][]=dp[i-][]+a[i][]*a[i-][];
dp[i][]=min(a[i][]*a[i][]+dp[i-][],a[i-][]*a[i][]+min(dp[i-][], dp[i-][]));
}
for(int i=; i<=n; i++)
{
dp[][i]=dp[][i-]+a[][i]*a[][i-];
dp[][i]=min(a[][i]*a[][i]+dp[][i-],a[][i-]*a[][i]+min(dp[][i-], dp[][i-]));
} for(int i=; i<=m; i++)
{
for(int j=; j<=n; j++)
{
if((i+j)%==)
{
dp[i][j]=a[i-][j]*a[i][j]+min(dp[i-][j], dp[i-][j-]);
dp[i][j]=min(dp[i][j], a[i][j-]*a[i][j]+min(dp[i-][j-], dp[i][j-]));
}
}
}
printf("%d\n", dp[m][n]);
}
return ;
}
/*
3 4
1 2 3 7
4 5 6 8
10 11 12 9 92
*/

matrix---简单dp,边界边界-_-的更多相关文章

  1. hdu 5569 matrix(简单dp)

    Problem Description Given a matrix with n rows and m columns ( n+m ,) and you want to go to the numb ...

  2. hdu 2471 简单DP

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2571 简单dp, dp[n][m] +=(  dp[n-1][m],dp[n][m-1],d[i][k ...

  3. 4.15 每周作业 —— 简单DP

    免费馅饼 Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total Submissi ...

  4. [改善Java代码]边界,边界,还是边界

    建议24:边界,边界,还是边界 import java.util.Scanner; public class Client { //一个会员拥有产品的最大数量 public final static ...

  5. HDU 1087 简单dp,求递增子序列使和最大

    Super Jumping! Jumping! Jumping! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 ...

  6. Codeforces Round #260 (Div. 1) A. Boredom (简单dp)

    题目链接:http://codeforces.com/problemset/problem/455/A 给你n个数,要是其中取一个大小为x的数,那x+1和x-1都不能取了,问你最后取完最大的和是多少. ...

  7. codeforces Gym 100500H A. Potion of Immortality 简单DP

    Problem H. ICPC QuestTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100500/a ...

  8. 简单dp --- HDU1248寒冰王座

    题目链接 这道题也是简单dp里面的一种经典类型,递推式就是dp[i] = min(dp[i-150], dp[i-200], dp[i-350]) 代码如下: #include<iostream ...

  9. poj2385 简单DP

    J - 简单dp Crawling in process... Crawling failed Time Limit:1000MS     Memory Limit:65536KB     64bit ...

随机推荐

  1. FreeRTOS——1

    以下转载自安富莱电子: http://forum.armfly.com/forum.php FreeRTOS 的特点 FreeRTOS 的主要特点如下:1. 支持抢占式调度,合作式调度和时间片调度.2 ...

  2. hdu4675 GCD of Sequence 莫比乌斯+组合数学

    /** 题目:hdu4675 GCD of Sequence 链接:http://acm.hdu.edu.cn/showproblem.php?pid=4675 题意:给定n个数的a数组,以及m,k: ...

  3. JAVA面试-HIBERNATE与 MYBATIS的对比

    JAVA面试中问及HIBERNATE与 MYBATIS的对比,在这里做一下总结   我是一名java开发人员,hibernate以及mybatis都有过学习,在java面试中也被提及问道过,在项目实践 ...

  4. Lifecycle for overriding binding, validation, etc,易于同其它View框架(Tiles等)无缝集成,采用IOC便于测试。

    Lifecycle for overriding binding, validation, etc,易于同其它View框架(Tiles等)无缝集成,采用IOC便于测试. 它是一个典型的教科书式的mvc ...

  5. 那么类 Man 可以从类 Human 派生,类 Boy 可以从类 Man 派生

    若在逻辑上 B 是 A 的“一种”(a kind of ),则允许 B 继承 A 的功 能和属性. 例如男人(Man)是人(Human)的一种,男孩(Boy)是男人的一种. 那么类 Man 可以从类 ...

  6. sudo执行脚本找不到环境变量解决方法

    问题: 当普通用户下,设置并export一个变量,然后利用sudo执行echo命令,能得到变量的值,但是如果把echo命令写入脚本, 然后再sudo执行脚本,就找不到变量,未能获取到值. 原因 sud ...

  7. C# 重命名文件

    在vb下,有一个方法可以对文件进行重命名,所以,我们只要引用到这种方法进行应用即可. 1.添加引用Microsoft.VisualBasic 2.添加命名空间using Microsoft.Visua ...

  8. JSP状态管理 及 Cookie实例

    HTTP协议的无状态性 无状态是指,当浏览器发送请求给服务器的时候,服务器响应客户端的请求. 但是当同一个浏览器再次发送请求给了服务器的时候,服务器并不知道它就是刚才那个浏览器. 简单地说,就是服务器 ...

  9. git练习

    git commit 提交记录 git branch <branch_name> 建立名为branch_name的分支 git checkout <name>:git comm ...

  10. 【BZOJ3238】[Ahoi2013]差异 后缀数组+单调栈

    [BZOJ3238][Ahoi2013]差异 Description Input 一行,一个字符串S Output 一行,一个整数,表示所求值 Sample Input cacao Sample Ou ...