题解 | #C悲伤的RT#

自动收小麦机

https://ac.nowcoder.com/acm/contest/61657/A

C题-悲伤的RT,双向队列deque+dp

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <queue>
#include <vector>
#include <iostream>
using namespace std;
void my_ans(){
    long long i,n,m;
    cin>>n>>m;
    long long a[n+1], ans[n+1];
    for(i=1;i<=n;++i) cin>>a[i];
    ans[0] = 0;
    deque<pair<int,int>> que;
    pair<int,int> p;
    for(i=1;i<=n;++i){
        ans[i] = ans[i-1];
        while(que.size()>0 && que.back().first >= a[i])
            que.pop_back();
        while(que.size()>0 && que.front().second <= i-m)
            que.pop_front();
        p.first = a[i];p.second = i;
        que.push_back(p);
        if (i-m>=0 && ans[i] < ans[i-m] + que.front().first)
            ans[i] = ans[i-m] + que.front().first;
    }
    cout<<ans[n]<<endl;
    return;
}
int main() {
    ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
    int t=1,i,j;
    //cin>>t;
    while(t>0){
        --t;my_ans();
    }
    return 0;
}
// 64 位输出请用 printf("%lld")
全部评论

相关推荐

15*12,996,裁应届,想招cppjavapython算法的全才是吧,还多选题少选无分,咪咕你真无敌了
Devs008:是呀,选择题太抽象了,还搞个什么比赛,笑死了
投递咪咕等公司10个岗位 >
点赞 评论 收藏
分享
ArisRobert:统一解释一下,第4点的意思是,公司按需通知员工,没被通知到的员工是没法去上班的,所以只要没被通知到,就自动离职。就是一种比较抽象的裁员。
点赞 评论 收藏
分享
喜欢走神的孤勇者练习时长两年半:爱华,信华,等华,黑华
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务