zoukankan      html  css  js  c++  java
  • 洛谷p1430 序列取数

     #include<cmath>//别人的代码 
     #include<cstdio>
     #include<cstring>
     #include<iostream>
     using namespace std;
     #define R register
     inline int read()
     {
         char ch=getchar();
         int x=0;bool s=1;
         while(!isdigit(ch)){if(ch=='-')s=0;ch=getchar();}
         while(isdigit(ch)){x=x*10+ch-'0';ch=getchar();}
         return s?x:-x;
     }//快读(这题略卡常)
     int s[1007];
     int f[1007][1007];
     int ml[1007][1007];
     int mr[1007][1007];
     //设ml为固定L端时的min值,mr为固定R端时的max值
     void write(int x)
     {
         if(x>9)write(x/10);
         putchar(x%10+'0');
         return;
     }//快写
     int main()
     {
         //freopen("a.in","r",stdin);
         int t=read();
         while(t--)
         {
             int n=read();
             for(R int i=1;i<=n;++i)
             s[i]=s[i-1]+read();//前缀和
             for(R int l=1;l<=n;++l)
             {
                 f[l][l]=s[l]-s[l-1];
                 ml[l][l]=s[l]+f[l][l];//标记数组,元素下标是什么标记数组下标就是什么 
                 mr[l][l]=s[l-1]-f[l][l];
             }//预处理
             for(R int len=2;len<=n;++len)
             for(R int l=1,r=len;r<=n;++l,++r)//枚举区间
             {
                 f[l][r]=s[r]-s[l-1];
                 //mr
                 //for(R int _l=l+1;_l<=r;++_l)
                 //f[l][r]=max(f[l][r],s[_l-1]-s[l-1]-f[_l][r]);//注释掉的是原来的暴力
                 f[l][r]=max(f[l][r],mr[l+1][r]-s[l-1]);
                 //ml
                 //for(R int _r=r-1;_r>=l;--_r)
                 //f[l][r]=max(f[l][r],s[r]-s[_r]-f[l][_r]);
                 f[l][r]=max(f[l][r],s[r]-ml[l][r-1]);
                 //
                 ml[l][r]=min(ml[l][r-1],s[r]+f[l][r]);
                 mr[l][r]=max(mr[l+1][r],s[l-1]-f[l][r]);
             }
             int x=(f[1][n]+s[n])>>1;
             if(x<0){putchar('-');write(-x);}
             else write(x);
             putchar('
    ');
             //输出答案
         }
         return 0;
     }
  • 相关阅读:
    Java学习开篇
    《我的姐姐》
    世上本无事,庸人自扰之
    这48小时
    补觉
    淡定
    es java api 设置index mapping 报错 mapping source must be pairs of fieldnames and properties definition.
    java mongodb groupby分组查询
    linux 常用命令
    mongodb too many users are authenticated
  • 原文地址:https://www.cnblogs.com/lishengkangshidatiancai/p/10373439.html
Copyright © 2011-2022 走看看