马云在俄罗斯切蛋糕,第i个整数Pi代表第i小块蛋糕的幸运值

图片 1

原标题:马云在俄罗斯切蛋糕

题目描述

今天是小Z的生日,同学们为他带来了一块蛋糕。这块蛋糕是一个长方体,被用不同色彩分成了N个相同的小块,每小块都有对应的幸运值。

小Z作为寿星,自然希望吃到的第一块蛋糕的幸运值总和最大,但小Z最多又只能吃M小块(M≤N)的蛋糕。

吃东西自然就不想思考了,于是小Z把这个任务扔给了学OI的你,请你帮他从这N小块中找出连续的k块蛋糕(k≤M),使得其上的幸运值最大。

马云要“退休”?马云宣布明年教师节“退休”?

输入输出格式

图片 1

输入格式

输入文件cake.in的第一行是两个整数N,M。分别代表共有N小块蛋糕,小Z最多只能吃M小块。

第二行用空格隔开的N个整数,第i个整数Pi代表第i小块蛋糕的幸运值。

题图源自视觉中国

输出格式

输出文件cake.out只有一行,一个整数,为小Z能够得到的最大幸运值。

马云的54岁生日,是在俄罗斯过的。

输入输出样例

9月10日,在他发出公开信宣布一年后卸任阿里巴巴董事局主席的当天,马云登上了飞往俄罗斯的飞机,他要参加11日在符拉迪沃斯托克市举行的第四届东方经济论坛。

输入样例

样例输入1
5 2
1 2 3 4 5

样例输入2
6 3
1 -2 3 -4 5 -6

生日都要在飞机上过,马云到底有多忙?阿里巴巴联合创始人、B2B事业群总裁戴珊说:“今年刚九个月,就飞1000多个小时,去年是900多个。”

输出样例

样例输出1
9

样例输出2
5

不知道马云有没有在飞机上切生日蛋糕,反正他是要去俄罗斯分块大蛋糕了。

题解

一道求最大不定长区间和的问题
区间[i,j]和的最大值ans(i,j)=max{sum[j]-sum[i-1],j-m<i<=j}(其中sum[j]是前缀和数组),我们可以选择去枚举右端点,那么sum[j]就是定值,上面的方程可以化简为ans(i,j)=sum[j]-min{sum[i-1],j-m<i<=j},这样只需要用单调队列维护区间内最小的sum[i-1]就好了

退休,也要谈合作

代码

#include<cstdio>
#include<cstring>

const int MAXN=500050;
struct T
{
    int v,pos;
}q[MAXN];

int sum[MAXN],a[MAXN],m,n,ans;

int read()
{
    int x=0,f=1;
    char ch=getchar();
    while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
    while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
    return x*f;
}

inline int maxx(int x,int y){return x>y?x:y;}

int main()
{
    n=read();
    m=read();
    for(int i=1;i<=n;++i)
    {
        a[i]=read();
        sum[i]=sum[i-1]+a[i];
    }
    int head=0,tail=1;
    q[tail].v=sum[1];
    q[tail].pos=1;
    ans=sum[1];
    for(int i=2;i<=n;++i)
    {
        while(head!=tail&&q[tail].v>sum[i])
            --tail;
        q[++tail].v=sum[i];
        q[tail].pos=i;
        while(head!=tail&&q[head+1].pos<i-m)
            ++head;
        ans=maxx(sum[i]-q[head+1].v,ans);
    }
    printf("%d\n",ans);
    return 0;
}

这次俄罗斯行,最引人注目的当然是他与普京的会面。据悉,这是普京与马云的第四次见面。

在普京与企业家的圆桌会上,俄罗斯总统普京表示,支持阿里巴巴在俄罗斯的发展。一个有意思的小插曲是,他问坐在他对面的马云:“年轻人,我今年66岁了,还在努力工作,你为什么要退休?”

马云回答说:“我不年轻了,昨天刚好在俄罗斯过54岁生日。我创业19年,做了一些事,但还有更多热爱的事想做,比如教育和公益。”他表示他这次来俄罗斯,还要在一带一路技术合作、年轻人培训、小企业发展等几个方面跟俄罗斯签署合作。

他来俄罗斯的主要目的当然不是和普京谈心。阿里巴巴于周二的东方经济论坛上宣布,与俄罗斯直接投资基金(RDIF)、移动运营商Megafon以及互联网集团Mail.ru签署协议。阿里巴巴将持有这家名为AliExpress
Russia的合资公司48%的股权。

据路透社报道,阿里巴巴将会把速卖通(AliExpress)目前在俄罗斯的业务并入这家新合资公司。新成立的合资公司AliExpress
Russia将借助Mail.ru集团旗下社交媒体、短信、电邮和在线游戏资产的1亿名互联网用户来在俄罗斯开展活动。

RDIF是俄罗斯主权财富基金,它在这家合资公司中的身影显示出此次合作得到了俄罗斯政府的支持。