zoukankan      html  css  js  c++  java
  • 环面上的最大和 (Maximum sum on a torus,UVa 10827)

     1 #include <iostream>
     2 #include <string.h>
     3 #include <string>
     4 #include <fstream>
     5 #include <algorithm>
     6 #include <stdio.h>
     7 #include <vector>
     8 #include <queue>
     9 #include <set>
    10 #include <cmath>
    11 using namespace std;
    12 const double eps = 1e-8;
    13 const int INF=0x7fffffff;
    14 #define MAXN 76
    15 int s[MAXN][MAXN][MAXN];
    16 int a[MAXN][MAXN];
    17 int main()
    18 {
    19     int n,T;
    20     scanf("%d",&T);
    21     while(T--)
    22     {
    23         scanf("%d",&n);
    24         memset(s,0,sizeof(s));
    25         for(int i=0;i<n;i++)
    26             for(int j=0;j<n;j++)
    27             {scanf("%d",&a[i][j]);
    28             s[i][j][j]=a[i][j];}
    29         for(int x=0;x<n;x++)
    30         {
    31             for(int y=0;y<n;y++)
    32             for(int l=1;l<n;l++)
    33                 s[x][y][(y+l)%n]=s[x][y][(y+l-1)%n]+a[x][(y+l)%n];
    34 
    35         }
    36         int Max=-INF;
    37         int Min=0,ans=0;
    38         for(int y1=0;y1<n;y1++)
    39         for(int y2=0;y2<n;y2++)
    40         {
    41 
    42             for(int x=0;x<n;x++)
    43             {   ans=0;
    44                 for(int y=0;y<n;y++)
    45                 {
    46                 ans+=s[(x+y)%n][y1][y2];
    47                 Max=max(Max,ans);
    48                 //Min=min(Min,s[x][y1][y2]);
    49                 }
    50 
    51             }
    52         }
    53         printf("%d
    ",Max);
    54         /*cout<<endl;
    55         for(int i=0;i<n;i++)
    56         {
    57          for(int j=0;j<n;j++)
    58          cout<<a[i][j]<<' ';
    59          cout<<endl;
    60         }
    61         for(int x=0;x<n;x++)
    62         {cout<<x<<endl;
    63             for(int y=0;y<n;y++)
    64             {for(int l=0;l<n;l++)
    65             cout<<s[x][y][(y+l)%n]<<' ';
    66             cout<<endl;}
    67         }*/
    68 
    69     }
    70     return 0;
    71 }

    虽然过了 但空间优化不好~ 只需要一个一维数组维护状态即可

  • 相关阅读:
    Hbase多master
    hbase 新增节点
    HBase优化
    hbase 各个概念,region,storefile
    HBase简介(很好的梳理资料)
    hbase blocksize设置,与hdfs关系
    hbase常用运维命令
    hbase很有价值的读写性能提升
    关于hbase的read操作的深入研究 region到storefile过程
    Storm 实现滑动窗口计数和TopN排序
  • 原文地址:https://www.cnblogs.com/TO-Asia/p/3197648.html
Copyright © 2011-2022 走看看