JZOJ 5838. 旅游路线 最大子段和
Posted traveller-ly
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JZOJ 5838. 旅游路线 最大子段和相关的知识,希望对你有一定的参考价值。
做法:最大子段和
代码如下:
View Code
1 #include <cstdio> 2 #include <iostream> 3 #include <cstring> 4 #define N 207 5 #define LL long long 6 #define rep(i,a,b) for(int i=a;i<=b;i++) 7 #define max(a,b) (a)>(b)?(a):(b) 8 using namespace std; 9 int n,m,val[N][N]; 10 LL f[N], Q[N][N], ans; 11 12 void Init(){ 13 scanf("%d%d",&n,&m); 14 rep(i,1,n) 15 rep(j,1,m){ 16 scanf("%d",&val[i][j]); 17 Q[i][j]=Q[i-1][j]+val[i][j]; 18 } 19 } 20 21 void Get(int up,int down){ 22 rep(i,1,m) 23 f[i]=Q[down+up][i]-Q[up-1][i]; 24 LL sum=0; 25 rep(i,1,m){ 26 if(sum+f[i]>0) sum+=f[i],ans=max(ans,sum); 27 else sum=0; 28 } 29 30 } 31 32 void Work(){ 33 rep(i,1,n) 34 rep(j,0,n-i) 35 Get(i,j); 36 } 37 38 int main(){ 39 Init(); 40 Work(); 41 printf("%lld",ans); 42 }
以上是关于JZOJ 5838. 旅游路线 最大子段和的主要内容,如果未能解决你的问题,请参考以下文章