码迷,mamicode.com
首页 > 其他好文 > 详细

hdu1081

时间:2017-01-22 23:53:08      阅读:317      评论:0      收藏:0      [点我收藏+]

标签:二进制   out   符号   int   space   get   std   处理   while   

#include<iostream>
using namespace std;

int GetMaxNum(int a[],int n) //求最大字段和
{
int i,sum=0,maxsum=0;

maxsum|=1<<31;
for(i=1;i<=n;i++)
{
sum+=a[i];
if(sum<a[i])
sum=a[i];
if(maxsum<sum)
maxsum=sum;
}
return maxsum;
}

int main()
{
int n,i,j,k,a;
int s[102][102],t[102];
int res,maxres;

while(cin>>n)
{
for(i=0;i<=n;i++) //初始化,方便计算
s[i][0]=s[0][i]=0;

for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
cin>>a;
s[i][j]=s[i-1][j]+a; //读入时就处理,累加每一列的和,s[i][j]表示第j列中i从第1行加到第i行的和
}

maxres=0;
maxres|=1<<31; //maxres二进制最高位(符号位)置1变为负数,变为最小负数
for(i=0;i<n;i++)
for(j=i+1;j<=n;j++)
{
for(k=1;k<=n;k++)
t[k]=s[j][k]-s[i][k]; //t[k]表示第k列中第i行到第j行的和
res=GetMaxNum(t,n);
if(maxres<res)
maxres=res;
}
cout<<maxres<<endl;
}
return 0;
}

hdu1081

标签:二进制   out   符号   int   space   get   std   处理   while   

原文地址:http://www.cnblogs.com/wangkun1993/p/6341650.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!