zoukankan      html  css  js  c++  java
  • URAL 1146 Maximum Sum & HDU 1081 To The Max (DP)

    点我看题目

    题意 : 给你一个n*n的矩阵,让你找一个子矩阵要求和最大。

    思路 : 这个题都看了好多天了,一直不会做,今天娅楠美女给讲了,要转化成一维的,也就是说每一列存的是前几列的和,也就是说

     0 -2 -7 0
    9 2 -6 2
    -4 1 -4 1
    -1 8 0 -2

    处理后就是:
    0  -2  -9  -9
    9   11  5   7
    -4 -3  -7  -6
    -1  7   7   5

     1 #include <iostream>
     2 #include <stdio.h>
     3 #include <string.h>
     4 
     5 using namespace std;
     6 
     7 int sum[110][110] ;
     8 int main()
     9 {
    10     int n ,m;
    11     while(~scanf("%d",&n))
    12     {
    13         memset(sum,0,sizeof(sum)) ;
    14         for(int i = 1 ; i <= n ; i++)
    15         {
    16             for(int j = 1 ; j <= n ; j++)
    17             {
    18                 scanf("%d",&m) ;
    19                 sum[i][j] = sum[i-1][j]+m ;
    20             }
    21         }
    22         int ans = -9999999 ;
    23         for(int i = 1 ; i <= n ; i++ )
    24             for(int j = i ; j <= n ; j++)
    25             {
    26                 int cnt = 0 ;
    27                 for(int k = 1 ; k <= n ; k ++)
    28                 {
    29                     cnt += sum[j][k]-sum[i-1][k] ;
    30                     ans = max(cnt,ans) ;
    31                     if(cnt < 0) cnt = 0 ;
    32                 }
    33             }
    34         printf("%d",ans) ;
    35     }
    36     return 0;
    37 }
    View Code
  • 相关阅读:
    HHUOJ 1321
    数据结构应用
    数据结构应用
    数据结构与算法分析
    数据结构与算法分析
    CSS -- 字体样式
    CSS -- 选择器
    CSS
    HTML -- 表单元素2
    HTML -- 表单元素1
  • 原文地址:https://www.cnblogs.com/luyingfeng/p/3649205.html
Copyright © 2011-2022 走看看