标签:格式 输入 平均数 pre 前缀 class 自己的 输出 ++
AP 神牛准备给自己盖一座很华丽的宫殿。于是,他看中了一块N*M 的矩形空地。
空地中每个格子都有自己的海拔高度。AP 想让他的宫殿的平均海拔在海平面之上(假设
海平面的高度是0,平均数都会算吧?)。而且,AP 希望他的宫殿尽量大,能够容纳更
多的人来膜拜他。请问AP 的宫殿最后会有多大?
第一行为N 和M。之后N 行,每行M 个数,描述的空地的海拔。
输出一行,表示宫殿最大面积。
3 2
4 0
-10 8
-2 -2
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;
}
};
标签:格式 输入 平均数 pre 前缀 class 自己的 输出 ++
原文地址:http://www.cnblogs.com/qdscwyy/p/7898305.html