最大子段和
求模的 都可以在 被求模数的 得到过程中 对 被求模数的 不玩整体 进行求模 , 并且得到的模值 不会改变 . 这样的话 可以解决被 求模的数 过大 计算机无法保存的情况 .
1 #include<stdio.h> 2 #include<string.h> 3 #include<math.h> 4 #include<iostream> 5 #include<algorithm> 6 #include<queue> 7 #include<vector> 8 #include<set> 9 #include<stack> 10 #include<string> 11 #include<sstream> 12 #include<map> 13 #include<cctype> 14 #include<limits.h> 15 using namespace std; 16 int main() 17 { 18 __int64 n,a[50005],maxn,tmax; 19 while(scanf("%d",&n)!=EOF) 20 { 21 for(int i=0;i<n;i++) 22 scanf("%I64d",&a[i]); 23 maxn=INT_MIN; 24 tmax=0; 25 for(int i=0;i<n;i++) 26 { 27 if(tmax<0) 28 { 29 tmax=0; 30 tmax=a[i]; 31 } 32 else 33 tmax+=a[i]; 34 if(maxn<tmax) 35 maxn=tmax; 36 } 37 printf("%I64d\n",maxn); 38 } 39 return 0; 40 }