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 ...
随机推荐
- Parallelism , Partitioner
转:spark通过合理设置spark.default.parallelism参数提高执行效率 spark中有partition的概念(和slice是同一个概念,在spark1.2中官网已经做出了说明) ...
- Linux系统查看公网IP地址
curl members.3322.org/dyndns/getip
- js学习笔记23----窗口尺寸及窗口事件
窗口尺寸: 可视区的尺寸 document.documentElement.clientWidth document.documentElement.clientHeight 滚动距离 documen ...
- 解决Maven项目 Missing artifact jdk.tools:jdk.tools:1.7的错误
因学习项目需要,在pom.xml添加hbase-client依赖的时候提示解决Maven工程中报 Missing artifact jdk.tools:jdk.tools:1.7的提示信息,之前遇到这 ...
- JAVA在语言级支持多线程
进程:任务 任务并发执行是一个宏观概念,微观上是串行的. 进程的调度是有OS负责的(有的系统为独占式,有的系统为共享式,根据重要性,进程有优先级). 由OS将时间分为若干个时间片. JAVA在语言级支 ...
- Yii2.0实现微信公众号后台开发
接入微信 Yii2后台配置 1.在app/config/params.php中配置token参数 return [ //微信接入 'wechat' =>[ 'token' => 'your ...
- 开启mysql日志及若干问题
今天学习了mysql日志功能,以前也有所了解,只不过没有深入的学习,所以趁着“余热”,把我从网上找到的资料与实践 结合起来,总结一下其基本用法.学习从来都不是无趣的,就看你怎么看待学习. 1.查看查询 ...
- Spring_day03--Spring的事务管理
Spring的事务管理 事务概念 1 什么事务 事务是操作中最基本的单元,表示一组操作要么都成功,有一个失败那么所有都失败. 2 事务特性 原子性 一致性 隔离性 持久性 3 不考虑隔离性产生读问题 ...
- Thinkphp中如何书写按照指定字段同步更新的ORM
群友提出一个问题,如何在更新某个字段的时候同步另一个字段数据过来,即 update table set column1 =column2 where xxx 写原生SQL当然可行,不过既然有ORM那就 ...
- ArcGIS -- ArcSDE Lock request conflicts with an established lock
1.查询下列表是否有数据 select * from sde.state_locks; select * from sde.object_locks; select * from sde.layer_ ...