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;
     }
  • 相关阅读:
    ORA-12520: TNS:监听程序无法为请求的服务器类型找到可用的处理程序解
    Django2.1.2创建默认管理后台
    堡垒机实例以及数据库操作
    pycharm常用快捷键
    Linux命令之sftp
    oracle收集ash和awr性能报告方法
    linux-php5.6-安装sftp扩展
    linux系统安全设置策略
    Openssh版本升级修复漏洞
    Android Studio下HierarchyViewer的使用
  • 原文地址:https://www.cnblogs.com/lishengkangshidatiancai/p/10373439.html
Copyright © 2011-2022 走看看