zoukankan      html  css  js  c++  java
  • 1565

    P1565 牛宫

    题目描述

    AP 神牛准备给自己盖一座很华丽的宫殿。于是,他看中了一块N*M 的矩形空地。

    空地中每个格子都有自己的海拔高度。AP 想让他的宫殿的平均海拔在海平面之上(假设

    海平面的高度是0,平均数都会算吧?)。而且,AP 希望他的宫殿尽量大,能够容纳更

    多的人来膜拜他。请问AP 的宫殿最后会有多大?

    输入输出格式

    输入格式:

    第一行为N 和M。之后N 行,每行M 个数,描述的空地的海拔。

    输出格式:

    输出一行,表示宫殿最大面积。

    输入输出样例

    输入样例#1:

    3 2
    4 0
    -10 8
    -2 -2

    输出样例#1:

    4

    做法:
    虽然数据范围没有写但是有好心人告诉了
    n<=200
    那么三重循环就可以通过了
    所以就写了一个矩阵类
    通过前缀和维护矩阵的值

    class Matrix{
        private:
            int s[N][N];
            int n,m;
        public:
            int Number(int x,int y){
                return s[x][y];
            }
            Matrix(){}
            Matrix(int n=0,int m=0){
                this->n=n;
                this->m=m;
            }
            void input(){
                for(int i=0;i<=n;++i)
                    for(int j=0;j<=m;++j)
                        if(!i||!j)s[i][j]=0;
                        else s[i][j]=s[i-1][j]+s[i][j-1]-s[i-1][j-1]+b[i][j];
            }
            int Sigma(Point s,Point e){
                int Bigcube,Largecube,Smallcube;
                Bigcube=Number(e.x,e.y);
                Smallcube=Number(s.x-1,s.y-1);
                Largecube=Number(e.x,s.y-1);
                Largecube+=Number(s.x-1,e.y);
                return Bigcube-Largecube+Smallcube;
            }
    };
    
  • 相关阅读:
    矩形法求积分sin cos exp
    约瑟夫环问题
    KMP算法详解
    找出float型数组的最大值和最小值,分别和第一个和最后一个元素互换
    二重指针应用
    C++学习笔记(一)
    Line学习笔记
    node2vec学习笔记
    deepwalk学习笔记
    如何保证消息不被重复消费?(如何保证消息消费时的幂等性)
  • 原文地址:https://www.cnblogs.com/qdscwyy/p/7898305.html
Copyright © 2011-2022 走看看