matrix---简单dp,边界边界-_-
题目链接: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,边界边界-_-的更多相关文章
- 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 ...
- 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 ...
- 4.15 每周作业 —— 简单DP
免费馅饼 Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) Total Submissi ...
- [改善Java代码]边界,边界,还是边界
建议24:边界,边界,还是边界 import java.util.Scanner; public class Client { //一个会员拥有产品的最大数量 public final static ...
- HDU 1087 简单dp,求递增子序列使和最大
Super Jumping! Jumping! Jumping! Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 ...
- Codeforces Round #260 (Div. 1) A. Boredom (简单dp)
题目链接:http://codeforces.com/problemset/problem/455/A 给你n个数,要是其中取一个大小为x的数,那x+1和x-1都不能取了,问你最后取完最大的和是多少. ...
- 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 ...
- 简单dp --- HDU1248寒冰王座
题目链接 这道题也是简单dp里面的一种经典类型,递推式就是dp[i] = min(dp[i-150], dp[i-200], dp[i-350]) 代码如下: #include<iostream ...
- poj2385 简单DP
J - 简单dp Crawling in process... Crawling failed Time Limit:1000MS Memory Limit:65536KB 64bit ...
随机推荐
- js数组最大值和最小值计算
基本概念 reduce() 方法接收一个函数作为累加器(accumulator),数组中的每个值(从左到右)开始缩减,最终为一个值. reduce 为数组中的每一个元素依次执行回调函数,不包括数组中被 ...
- 一款基于HTML5 Canvas的画板涂鸦动画
今天给各网友分享一款基于HTML5 Canvas的画板涂鸦动画.记得之前我们分享过一款HTML5 Canvas画板工具,可以切换不同的笔刷,功能十分强大.本文今天要再来分享一款基于HTML5 Canv ...
- select下拉选框的默认值,包括每次进入页面的默认值
下拉选: <select onchange="selectTotal(this.value)" style="width: 50px;"> ...
- Java反射机制在代理模式中的使用
代理模式的核心思路就是一个接口有两个子类,一个子类完成核心的业务操作,另一个子类完成与核心业务有关的辅助性操作. 代理模式分为静态代理模式和动态代理模式. 静态代理模式: //接口类 interfa ...
- ipipe-3.10
git://git.xenomai.org/ipipe-gch.git for-ipipe-3.10
- 网桥bridge
1. 网桥基础 什么是网桥 网桥将多个网络在数据链路层连接起来.网桥的前身是集线器或中继器.网桥和集线器的区别:集线器上各端口都是共享同一条背板总线的,网桥的两个端口分别有一条独立的交换信道,不是共享 ...
- js跨域问题(2)
前两天碰到一个跨域问题的处理,使用jsonp可以解决.(http://www.cnblogs.com/xtechnet/p/4123210.html) 最近再整理了一下: 非CORS 1.jsonp. ...
- VB.NET & 策略模式(下机用户类型选择)
上篇文章讲述了对于下机操作和基本数据设定的时间联系,今天主要就是应用"策略模式"来了解了解对于固定用户,以及暂时用户之间的选择,看学习设计模式的时候自己对于策略模式的理解,我们能够 ...
- 小结:双连通分量 & 强连通分量 & 割点 & 割边
概要: 各种dfs时间戳..全是tarjan(或加上他的小伙伴)无限膜拜tarjan orzzzzzzzzz 技巧及注意: 强连通分量是有向图,双连通分量是无向图. 强连通分量找环时的决策和双连通的决 ...
- 漫游Kafka入门篇之简单介绍(1)
介绍 Kafka是一个分布式的.可分区的.可复制的消息系统.它提供了普通消息系统的功能,但具有自己独特的设计.这个独特的设计是什么样的呢? 首先让我们看几个基本的消息系统术语: Kafka将消息以 ...