动态规划

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<time.h>
using namespace std;
#define inf 0x3f3f3f3f
int V[][],dp[][][];
int min(int a,int b){
return a<b?a:b;
}
int main()
{
freopen("input4.txt","r",stdin);
freopen("output.txt","w",stdout);
int start=clock();//从这开始计时
int ca=,T,i,j,k,n,m;
scanf("%d",&T);
while(T--)
{
scanf("%d%d",&n,&m);
for(i=;i<n;++i)
for(j=;j<m;++j) scanf("%d",&V[i][j]);
printf("Case #%d: ",ca++);
memset(dp,inf,sizeof(dp));
dp[][][V[][]]=V[][]*V[][];
for(i=;i<n;++i)
for(j=;j<m;++j)
{
if(i+<n){
for(k=;k<=*;++k)
if(dp[i][j][k]!=inf)
dp[i+][j][k+V[i+][j]]=min(dp[i+][j][k+V[i+][j]],dp[i][j][k]+V[i+][j]*V[i+][j]);
}
if(j+<m){
for(k=;k<=*;++k)
if(dp[i][j][k]!=inf)
dp[i][j+][k+V[i][j+]]=min(dp[i][j+][k+V[i][j+]],dp[i][j][k]+V[i][j+]*V[i][j+]);
}
}
int ans=inf;
for(i=;i<=*;++i)
if(dp[n-][m-][i]!=inf)
ans=min(ans,(n+m-)*dp[n-][m-][i]-i*i);
printf("%d\n",ans);
}
int end=clock();//到这结束
printf("%d ms\n",end-start);//算出来的单位是毫秒
return ;
}
#include<stdio.h>
#include<string.h>
#define inf 0x3f3f3f3f
int dp[][][];
int v[][];
int min(int a,int b){
return a<b?a:b;
}
int main(){
int t,n,m,cur=,i,j,k;
//freopen("input4.txt","r",stdin);
//freopen("output.txt","w",stdout);
scanf("%d",&t);
while(t--){
printf("Case #%d: ",cur++);
scanf("%d %d",&n,&m);
for(i=;i<=n;i++){
for(j=;j<=m;j++)
scanf("%d",&v[i][j]);
}
memset(dp,inf,sizeof(dp));
dp[][][v[][]]=v[][]*v[][];
for(i=;i<=n;i++){
for(j=;j<=m;j++){
if(j+<=m){//向右
for(k=;k<=*;k++){
if(dp[i][j][k]!=inf)
dp[i][j+][k+v[i][j+]]=min(dp[i][j+][k+v[i][j+]],dp[i][j][k]+v[i][j+]*v[i][j+]);
}
}
if(i+<=n){//向下
for(k=;k<=*;k++){
if(dp[i][j][k]!=inf)
dp[i+][j][k+v[i+][j]]=min(dp[i+][j][k+v[i+][j]],dp[i][j][k]+v[i+][j]*v[i+][j]);
}
} }
}
int ans=inf;
for(i=;i<=*;i++){
if(dp[n][m][i]!=inf)
ans=min(ans,(n+m-)*dp[n][m][i]-i*i);
}
printf("%d\n",ans); }
return ;
}

hdu 5492的更多相关文章

  1. 2015合肥网络赛 HDU 5492 Find a path 动归

    HDU 5492 Find a path 题意:给你一个矩阵求一个路径使得 最小. 思路: 方法一:数据特别小,直接枚举权值和(n + m - 1) * aver,更新答案. 方法二:用f[i][j] ...

  2. 【动态规划】HDU 5492 Find a path (2015 ACM/ICPC Asia Regional Hefei Online)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5492 题目大意: 一个N*M的矩阵,一个人从(1,1)走到(N,M),每次只能向下或向右走.求(N+ ...

  3. HDU 5492(DP) Find a path

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5492 题目大意是有一个矩阵,从左上角走到右下角,每次能向右或者向下,把经过的数字记下来,找出一条路径是 ...

  4. HDU 5492 Find a path

    Find a path Time Limit: 1000ms Memory Limit: 32768KB This problem will be judged on HDU. Original ID ...

  5. hdu 5492 Find a path(dp+少量数学)2015 ACM/ICPC Asia Regional Hefei Online

    题意: 给出一个n*m的地图,要求从左上角(0, 0)走到右下角(n-1, m-1). 地图中每个格子中有一个值.然后根据这些值求出一个最小值. 这个最小值要这么求—— 这是我们从起点走到终点的路径, ...

  6. hdu 5492 (暴力+nice)

    题意:在矩阵中,找一条路从 (1,1)->(n,m),使方差最小 思路: T = (N+M−1)∑N+M−1i=1(Ai−Aavg)2 将N + M - 1乘进去,即求1 ~ N+M-1,(N ...

  7. Find a path HDU - 5492 (dp)

    Find a path Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  8. HDU - 5492 Find a path(方差公式+dp)

    Find a path Frog fell into a maze. This maze is a rectangle containing NN rows and MM columns. Each ...

  9. HDOJ 2111. Saving HDU 贪心 结构体排序

    Saving HDU Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

随机推荐

  1. 20145212 《Java程序设计》第2周学习总结

    20145212 <Java程序设计>第2周学习总结 教材学习内容总结 第二周主要学习了Java的基本语法,在第一周熟悉了Java基本操作的基础上我们可以自行的利用这些语法编译具有实用价值 ...

  2. Java排序算法——快速排序

    import java.util.Arrays; //================================================= // File Name : Arrays_Q ...

  3. LVS相关学习

    vi /etc/sysctl.conf net.ipv4.conf.eth0.arp_ignore = 1 net.ipv4.conf.eth0.arp_announce = 2 net.ipv4.c ...

  4. HTML5 Web Form 新增属性和表单验证

    <form>标签的基本属性 method属性:指定浏览器向服务器传送数据的方式,可选: action属性:设置服务器接受和处理表单数据的URL: enctype属性:制定表单数据在发送到服 ...

  5. sn 密钥注册

    ::打开开发人员命令提示符输入一下内容与证书密码sn -i CanChou.snk.pfx VS_KEY_4B89A33EE2B53C07

  6. WebGrid with filtering, paging and sorting 【转】

    WebGrid with filtering, paging and sorting by Jose M. Aguilar on April 24, 2012 in Web Development A ...

  7. Java并发编程核心方法与框架-CountDownLatch的使用

    Java多线程编程中经常会碰到这样一种场景:某个线程需要等待一个或多个线程操作结束(或达到某种状态)才开始执行.比如裁判员需要等待运动员准备好后才发送开始指令,运动员要等裁判员发送开始指令后才开始比赛 ...

  8. CSS立体标签实现

    <style> .tag { background-color: #de3f33; position: relative; text-align: center; color: #fff; ...

  9. 怎么搭建Web Api

    1.通常我们有个web 让后可以有个web api 提供接口2.通常我们分别建两个项目 web api 依赖web的来进行访问(说到底是依赖是IIS)3.我们先建个SmallCode.Test.Web ...

  10. 如何判断retina,如何判断设备的比例

    http://www.189works.com/article-95647-1.html 说起iPhone 4带来的革新,retina display绝对是最吸引眼球的一项,以至于我现在看电脑的显示屏 ...