UVA 10827 Maximum sum on a torus .
2016-11-07 18:39
489 查看
题目地址:http://vjudge.net/problem/UVA-10827
就是普通的最大子矩阵和,因为是环面,所以没上边界和下边界,但不能重复加同一个地方
首先想到的就是,上下拼接,左右拼接
#include <bits/stdc++.h>
using namespace std;
#define REP(i,a,b) for(int i=a;i<=(int)(b);++i)
#define REPD(i,a,b) for(int i=a;i>=(int)(b);--i)
const int maxn=75*2+5;
int Gird[maxn][maxn],R,a[maxn][maxn];
int getMax(int *A,int n){
int temp=0,ans=-(1<<30);
REP(i,n,n+R-1){
if(temp<0) temp=A[i];
else temp+=A[i];
ans=max(ans,temp);
}
return ans;
}
int solve(){
int ans=-(1<<30);
REP(i,1,R){
memset(a,0,sizeof(a));
REP(j,i,i+R-1) {
REP(k,1,R) {
REP(l,k,k+R-1)
a[k][l]+=Gird[j][l];
ans=max(ans,getMax(a[k],k));
}
}
}
return ans;
}
int main(int argc, char const *argv[])
{
int T; scanf("%d",&T);
while(T--){
scanf("%d",&R);
REP(i,1,R) REP(j,1,R) {scanf("%d",&Gird[i][j]); Gird[i+R][j]=Gird[i][j+R]=Gird[i+R][j+R]=Gird[i][j]; }
printf("%d\n", solve());
}
return 0;
}
就是普通的最大子矩阵和,因为是环面,所以没上边界和下边界,但不能重复加同一个地方
首先想到的就是,上下拼接,左右拼接
#include <bits/stdc++.h>
using namespace std;
#define REP(i,a,b) for(int i=a;i<=(int)(b);++i)
#define REPD(i,a,b) for(int i=a;i>=(int)(b);--i)
const int maxn=75*2+5;
int Gird[maxn][maxn],R,a[maxn][maxn];
int getMax(int *A,int n){
int temp=0,ans=-(1<<30);
REP(i,n,n+R-1){
if(temp<0) temp=A[i];
else temp+=A[i];
ans=max(ans,temp);
}
return ans;
}
int solve(){
int ans=-(1<<30);
REP(i,1,R){
memset(a,0,sizeof(a));
REP(j,i,i+R-1) {
REP(k,1,R) {
REP(l,k,k+R-1)
a[k][l]+=Gird[j][l];
ans=max(ans,getMax(a[k],k));
}
}
}
return ans;
}
int main(int argc, char const *argv[])
{
int T; scanf("%d",&T);
while(T--){
scanf("%d",&R);
REP(i,1,R) REP(j,1,R) {scanf("%d",&Gird[i][j]); Gird[i+R][j]=Gird[i][j+R]=Gird[i+R][j+R]=Gird[i][j]; }
printf("%d\n", solve());
}
return 0;
}
相关文章推荐
- UVA 10827 Maximum sum on a torus
- uva 10827 Maximum sum on a torus
- UVA 10827 Maximum sum on a torus 最大矩阵和
- UVa 10827 - Maximum sum on a torus
- UVa 10827 - Maximum sum on a torus
- UVa 10827 Maximum sum on a torus 解题报告(前缀和)
- UVA - 10827 Maximum sum on a torus
- uva 10827 - Maximum sum on a torus(dp)
- UVA 10827 Maximum sum on a torus(子矩阵之和变形)(前缀和)
- uva 10827 Maximum sum on a torus
- uva 10827 - Maximum sum on a torus
- (intermediate) 暴力 UVA 10827 - Maximum sum on a torus
- UVa 10827 Maximum sum on a torus (贪心&矩阵环中的最大子矩阵和)
- UVA - 10827 Maximum sum on a torus(dp最大子矩阵和)
- UVa 10827 - Maximum sum on a torus
- uva 10827 - Maximum sum on a torus(最大子矩阵升级版)
- uva_10827_Maximum sum on a torus( 普通DP )
- UVA 10827 Maximum sum on a torus(子矩阵之和变形)
- UVA - 10827 Maximum sum on a torus
- UVA - 10827 Maximum sum on a torus