集训 T2-监考老师
Posted fuxyao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了集训 T2-监考老师相关的知识,希望对你有一定的参考价值。
大致题意:
- 找出一个位置可以选出最大的"横排总和+竖列总和"。
基本思路
- 利用前缀和的思想在读入的时候把每一列每一行的总和都算出来,
- 然后暴力枚举每一个点,每一个点的答案就是这一行和这一列的和,
- 最后找出最大的。
Code:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <queue>
#include <stack>
#include <map>
#include <set>
#include <list>
using namespace std;
#define R read()
#define GC getchar()
#define ll long long
#define ull unsigned long long
#define INF 0x7fffffff
#define LLINF 0x7fffffffffffffff
ll read(){
ll s=0,f=1;
char c=GC;
while(c<‘0‘||c>‘9‘){if(c==‘-‘)f=-f;c=GC;}
while(c>=‘0‘&&c<=‘9‘){s=s*10+c-‘0‘;c=GC;}
return s*f;
}
void fre(){
freopen("teacher.in","r",stdin);
freopen("teacher.out","w",stdout);
}
int n,m;
int mp[110][110];
int x[110],y[110];//x[i]表示第i行的总和,y[i]表示第i列的总和
int ans;
int main(){
fre();
n=R;m=R;
for(int i=1;i<=n;++i){
for(int j=1;j<=m;++j){
mp[i][j]=R;//读入
x[i]+=mp[i][j];//记录第i行的总和
y[j]+=mp[i][j];//记录第i列的总和
}
}
for(int i=1;i<=n;++i){
for(int j=1;j<=m;++j){//暴力枚举每一个点
ans=max(ans,x[i]+y[j]);//找出最大的
}
}
printf("%d",ans);//输出
return 0;
}
以上是关于集训 T2-监考老师的主要内容,如果未能解决你的问题,请参考以下文章