动态规划

  1. #include<iostream>
  2. #include<cstdio>
  3. #include<cstring>
  4. #include<algorithm>
  5. #include<cmath>
  6. #include<time.h>
  7. using namespace std;
  8. #define inf 0x3f3f3f3f
  9. int V[][],dp[][][];
  10. int min(int a,int b){
  11. return a<b?a:b;
  12. }
  13. int main()
  14. {
  15. freopen("input4.txt","r",stdin);
  16. freopen("output.txt","w",stdout);
  17. int start=clock();//从这开始计时
  18. int ca=,T,i,j,k,n,m;
  19. scanf("%d",&T);
  20. while(T--)
  21. {
  22. scanf("%d%d",&n,&m);
  23. for(i=;i<n;++i)
  24. for(j=;j<m;++j) scanf("%d",&V[i][j]);
  25. printf("Case #%d: ",ca++);
  26. memset(dp,inf,sizeof(dp));
  27. dp[][][V[][]]=V[][]*V[][];
  28. for(i=;i<n;++i)
  29. for(j=;j<m;++j)
  30. {
  31. if(i+<n){
  32. for(k=;k<=*;++k)
  33. if(dp[i][j][k]!=inf)
  34. 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]);
  35. }
  36. if(j+<m){
  37. for(k=;k<=*;++k)
  38. if(dp[i][j][k]!=inf)
  39. 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+]);
  40. }
  41. }
  42. int ans=inf;
  43. for(i=;i<=*;++i)
  44. if(dp[n-][m-][i]!=inf)
  45. ans=min(ans,(n+m-)*dp[n-][m-][i]-i*i);
  46. printf("%d\n",ans);
  47. }
  48. int end=clock();//到这结束
  49. printf("%d ms\n",end-start);//算出来的单位是毫秒
  50. return ;
  51. }
  1. #include<stdio.h>
  2. #include<string.h>
  3. #define inf 0x3f3f3f3f
  4. int dp[][][];
  5. int v[][];
  6. int min(int a,int b){
  7. return a<b?a:b;
  8. }
  9. int main(){
  10. int t,n,m,cur=,i,j,k;
  11. //freopen("input4.txt","r",stdin);
  12. //freopen("output.txt","w",stdout);
  13. scanf("%d",&t);
  14. while(t--){
  15. printf("Case #%d: ",cur++);
  16. scanf("%d %d",&n,&m);
  17. for(i=;i<=n;i++){
  18. for(j=;j<=m;j++)
  19. scanf("%d",&v[i][j]);
  20. }
  21. memset(dp,inf,sizeof(dp));
  22. dp[][][v[][]]=v[][]*v[][];
  23. for(i=;i<=n;i++){
  24. for(j=;j<=m;j++){
  25. if(j+<=m){//向右
  26. for(k=;k<=*;k++){
  27. if(dp[i][j][k]!=inf)
  28. 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+]);
  29. }
  30. }
  31. if(i+<=n){//向下
  32. for(k=;k<=*;k++){
  33. if(dp[i][j][k]!=inf)
  34. 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]);
  35. }
  36. }
  37.  
  38. }
  39. }
  40. int ans=inf;
  41. for(i=;i<=*;i++){
  42. if(dp[n][m][i]!=inf)
  43. ans=min(ans,(n+m-)*dp[n][m][i]-i*i);
  44. }
  45. printf("%d\n",ans);
  46.  
  47. }
  48. return ;
  49. }

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. LVS相关学习

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

  2. UI控件之ListView

    一,一个简单的TextView列表 public class FirstActivity extends Activity { private String[] data = {"Apple ...

  3. live555在Raspberry Pi上的点播/直播

    1.live555在Raspberry Pi上的点播 live555MediaServer这个实例是个简单的服务器,支持多媒体点播,直接在Raspberry Pi上编译运行,或者通过交叉编译出ARM核 ...

  4. aufomaper Queryable Extensions ProjectTo

    When using an ORM such as NHibernate or Entity Framework with AutoMapper's standard Mapper.Map funct ...

  5. c++异常总结

    堆栈辗转开解(stack-unwinding):如果一个函数中出现异常,在当前函数内即通过 try..catch 捕捉(且捕捉到)的话,可以继续往下执行:如果不捕捉(或未捕捉到)就会抛出(与通过 th ...

  6. 大熊君大话NodeJS之------Http模块

    一,开篇分析 首先“Http”这个概念大家应该比较熟悉了,它不是基于特定语言的,是一个通用的应用层协议,不同语言有不同的实现细节,但是万变不离其宗,思想是相同的, NodeJS作为一个宿主运行环境,以 ...

  7. 详解CSS中clear属性both、left、right值的含义

    前几天一朋友在群里问clear:left的意思,我以为是简单的清除浮动问题,就让他百度"清除浮动",导致中间有点小误会.后来我按照他写的DEMO,发现我自己也没完全理解clear: ...

  8. 【Bootstrap】Bootstrap和Java分页-第二篇

    目录 关于此文 配置xml-pager.tld 分页控件-Pager 分页action集成类-BaseController 实例-Dao 实例-service 实例-action 实例-JSP 实例- ...

  9. ELK日志分析系统(转)

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://467754239.blog.51cto.com/4878013/1700828 ...

  10. gspx请求周期(备忘)