zoukankan      html  css  js  c++  java
  • hdu 5902 Seam Carving

    水题,直接上代码了

     1 #include<cstdio>
     2 #include<cstring>
     3 #include<iostream>
     4 #include<cmath>
     5 #include<algorithm>
     6 #include<set>
     7 #include<map>
     8 #include<queue>
     9 #include<stack>
    10 #include<string>
    11 #include<vector>
    12 #define maxn
    13 #define INF 1000000000
    14 using namespace std;
    15 int t,m,n;
    16 int dp[110][110],fa[110][110],num[110][110];
    17 void print(int x,int y)
    18 {
    19     if(x==1)
    20     {
    21         printf("%d ",y);
    22         return ;
    23     }
    24 
    25     print(x-1,fa[x][y]);
    26     if(x==m)
    27       printf("%d",y);
    28     else
    29        printf("%d ",y);
    30 }
    31 int main()
    32 {
    33     scanf("%d",&t);
    34     for(int ii=1;ii<=t;ii++)
    35     {
    36         scanf("%d %d",&m,&n);
    37         for(int i=1;i<=m;i++)
    38             for(int j=1;j<=n;j++)
    39               scanf("%d",&num[i][j]);
    40         for(int i=0;i<=m+1;i++)
    41             for(int j=0;j<=n+1;j++)
    42               dp[i][j]=INF;
    43         for(int j=1;j<=n;j++)
    44             dp[1][j]=num[1][j],fa[1][j]=j;
    45         for(int i=2;i<=m;i++)
    46         {
    47           for(int j=1;j<=n;j++)
    48           {
    49               for(int k=1;k>=-1;k--)
    50               {
    51                   if(dp[i][j]>num[i][j]+dp[i-1][j+k])
    52                   {
    53                       dp[i][j]=num[i][j]+dp[i-1][j+k];
    54                       fa[i][j]=j+k;
    55                   }
    56               }              //printf("%d ",dp[i][j]);
    57           }
    58         }
    59 
    60         int ans_max=INF;
    61         int flag;
    62         for(int j=n;j>=1;j--)
    63         {
    64            
    65             if(dp[m][j]<ans_max)
    66             {
    67                 ans_max=dp[m][j];
    68                 flag=j;
    69             }
    70         }
    71         printf("Case %d
    ",ii);
    72         print(m,flag);
    73         printf("
    ");
    74     }
    75     return 0;
    76 }
  • 相关阅读:
    6-8 adaboost分类器2
    6-7 adaboost分类器1
    6-6 Haar特征3
    6-5 Haar特征2
    6-4 Haar特征1
    6-3 图片合成视频
    6-2 视频分解图片
    Linux操作系统六大优点
    Linux系统正则表达式用法笔记
    Linux系统正则表达式用法笔记
  • 原文地址:https://www.cnblogs.com/tsw123/p/4470180.html
Copyright © 2011-2022 走看看