zoukankan      html  css  js  c++  java
  • NOIP模拟赛 某种数列问题

    众所周知,chenzeyu97有无数的妹子(阿掉!>_<),而且他还有很多恶趣味的问题,继上次纠结于一排妹子的排法以后,今天他有非(chi)常(bao)认(cheng)真(zhe)去研究一个奇怪的问题。有一堆他的妹子站成一排,然后对于每个妹子有一个美丽度,当然美丽度越大越好,chenzeyu97妹子很多,但是质量上不容乐观,经常出现很多美丽度为负数的妹子(喜闻乐见),chenzeyu97希望从一排妹子里找出3队连续的妹子,使她们的美丽度和最大。注意,一个妹子不能被编入多个队伍而且一定要拿出三队,不然czy会闲着没事做~。

    简单滴说就是:

    给定一个数列,从中找到3个无交集的连续子数列使其和最大。

    【输入文件】

    第一行一个数n,表示数列长度。

    接下来有n行,每行一个数,第i行为第i个数。

    【输出文件】

    仅有一个数,表示最大和。

    【样例输入】 jx.in

    10

    -1

    2

    3

    -4

    0

    1

    -6

    -1

    1

    -2

    【样例输出】 jx.out

    7

    【样例说明】

    第一队妹子取2,3。

    第二队妹子取0,1。

    第三队妹子取1。

    【数据范围】

    请大家放心,虽然chenzeyu97妹子无数,但是这次他叫来的个数n是有限的。=v=

    对于30%的数据,妹子数不大于200。

    对于60%的数据,妹子数不大于2000。

    对于100%的数据,妹子数1000000。

    f[i][j][k] 表示前i个mz,取j段时,0代表不取最后一个,1代表取最后一个

    之所以要分取或不取,主要判断f[i][j][1]=max(f[i][j][1],f[i-1][j][1]+a[i]);

     1 #include<iostream>
     2 using namespace std;
     3 
     4 const int INF=0x7fffffff;
     5 
     6 int n,ans=-INF;
     7 int a[1000001];
     8 int f[1000001][4][2];
     9 
    10 int main()
    11 {
    12     scanf("%d",&n);;
    13     for(int i=1;i<=n;i++) scanf("%d",&a[i]);
    14     memset(f,0x8f,sizeof(f));
    15     f[1][0][0]=0;f[1][1][1]=a[1];
    16     for(int i=2;i<=n;i++)
    17         for(int j=0;j<=3;j++)
    18         {
    19             f[i][j][0]=max(f[i-1][j][0],f[i-1][j][1]);
    20             if(j>0) f[i][j][1]=max(f[i-1][j-1][0]+a[i],f[i-1][j-1][1]+a[i]);
    21             f[i][j][1]=max(f[i][j][1],f[i-1][j][1]+a[i]);
    22         }
    23     for(int i=1;i<=n;i++)
    24         ans=max(max(ans,f[i][3][0]),f[i][3][1]);
    25     printf("%d
    ",ans);
    26     return 0;
    27 }
  • 相关阅读:
    mac c++编译出现segmentation fault :11错误
    ssh 连接缓慢解决方法
    237. Delete Node in a Linked List
    203. Remove Linked List Elements
    Inversion of Control Containers and the Dependency Injection pattern
    82. Remove Duplicates from Sorted List II
    83. Remove Duplicates from Sorted List
    SxsTrace
    使用CCleaner卸载chrome
    decimal and double ToString problem
  • 原文地址:https://www.cnblogs.com/InWILL/p/6016900.html
Copyright © 2011-2022 走看看