HDOJ1231 ( 最大连续子序列 ) 【逆推或动态规划】

it2022-05-17  73

类似HDOJ1003 Problem : 1231 ( 最大连续子序列 )     Judge Status : AcceptedRunId : 5938021    Language : C    Author : qq1203456195Code Render Status : Rendered By HDOJ C Code Render Version 0.01 Beta   #include <stdio.h> #define N 10005 int a[N],b[N],c[N]; int main() { int n,j,tmax,ti,tj,p; while(scanf("%d",&n),n) { p=0; for (j=0;j<n;j++) { scanf("%d",&a[j]); if(a[j]<0) p++; } if(p==n) { printf("0 %d %d\n",a[0],a[n-1]); continue; } c[n-1]=n-1; b[n-1]=a[n-1]; //注意tmax,ti,tj初始化 tmax=a[n-1]; ti=tj=n-1; for (j=n-2;j>=0;j--) { if(b[j+1]>0) {//这里不能是>= b[j]=a[j]+b[j+1]; c[j]=c[j+1]; }else{ b[j]=a[j]; c[j]=j; } if(b[j]>=tmax){ tmax=b[j]; ti=j; tj=c[j]; } } printf("%d %d %d\n",tmax,a[ti],a[tj]); } }

 

转载于:https://www.cnblogs.com/CheeseZH/archive/2012/05/13/2498061.html


最新回复(0)