hdu 5280 Senior's Array 修改区间和最大

来源:互联网 发布:养老金亏空 知乎 编辑:程序博客网 时间:2024/05/05 04:57

hdu 5280 Senior’s Array

题意为给一个数组,必须修改一个数为p且修改一次
使某一区间和最大
于是枚举每一个数修改一次,再求最大区间和

#include <cstdio>#include <math.h>#include <cstring>#define N 1005long long dp1[N];int a[N];long long max(long long x,long long y){      if(x>=y)          return x;      return y;}  //重载max,使其能比较long long类型数据 int main(){    int T;    scanf("%d",&T);    while(T--){       int n,p;       long long maxt=-0x3f3f3f3f;       memset(dp1,0,sizeof(dp1));      scanf("%d%d",&n,&p);      for(int i=1;i<=n;i++){         scanf("%d",&a[i]);      }      for(int i=1;i<=n; i++)//枚举每一个数并修改      {            int t=a[i];          a[i]=p;          for(int j=1;j<=n; j++){//求最大区间和              dp1[j]=max(dp1[j-1]+a[j],a[j]);              maxt=max(maxt,dp1[j]);          }          a[i]=t;      }    printf("%lld\n",maxt);    }   return 0;}
0 0
原创粉丝点击