亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

HDU 3415 Max Sum of Max-K-sub-sequence 最長K

系統 1843 0

鏈接: http://acm.hdu.edu.cn/showproblem.php?pid=3415

意甲冠軍:環。要找出當中9長度小于等于K的和最大的子段。

思路:不能採用最暴力的枚舉。題目的數據量是10^5,O(N^2)的枚舉回去超時。本題採用的非常巧妙的DP做法,是用單調隊列優化的DP。

運用的是STL的deque,從i:1~a找到以當中以i為尾的符合條件的子段。并將i本身放入雙向隊列。全部i從隊列后放入,保證了隊列的單調性。

代碼:

      #include <iostream>
#include <cstdio>
#include <cstring>
#include <cctype>
#include <cstdlib>
#include <cmath>
#include <map>
#include <set>
#include <queue>
#include <stack>
#include <vector>
#include <ctype.h>
#include <algorithm>
#include <string>
#define PI acos(-1.0)
#define mem(a,b) memset(a,b,sizeof(a))
#define maxn 100005*2
#define maxm
#define INF 0x7fffffff
typedef long long ll;
using namespace std;
int num[maxn],sum[maxn];
int main()
{
    int tot;
    scanf("%d",&tot);
    while(tot--)
    {
        int a,b;
        scanf("%d%d",&a,&b);
        scanf("%d",&num[1]);
        sum[1]=num[1];
        for(int i=2;i<=a;i++)
        {
            scanf("%d",&num[i]);
            sum[i]=sum[i-1]+num[i];
        }
        for(int i=a+1;i<a+b;i++)
        sum[i]=sum[i-1]+num[i-a];
        deque < int > dd;
        int ans=-INF,head=-1,tail=-1;
        for(int i=1;i<a+b;i++)
        {
            while(!dd.empty()&&sum[i-1]<sum[dd.back()])
            dd.pop_back();
            while(!dd.empty()&&i>dd.front()+b)
            dd.pop_front();
            dd.push_back(i-1);
            if(sum[i]-sum[dd.front()]>ans)
            {
                ans=sum[i]-sum[dd.front()];
                head=dd.front()+1;
                tail=i;
            }
        }
        if(head>a)
        head-=a;
        if(tail>a)
        tail-=a;
        printf("%d %d %d\n",ans,head,tail);
    }
    return 0;
}

    


版權聲明:本文博客原創文章,博客,未經同意,不得轉載。

HDU 3415 Max Sum of Max-K-sub-sequence 最長K子段和


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 日日摸夜夜爽日日放碰 | 亚洲狠狠97婷婷综合久久久久 | 青青青激情视频在线最新 | 国产伦久视频免费观看 视频 | 日韩欧美综合在线二区三区 | 午夜精品久久久久久久爽 | 欧美精品香蕉在线观看网 | 亚洲高清在线观看播放 | 日本一级毛片 | 久久美女免费视频 | 97在线碰碰观看免费高清 | 亚洲欧美日韩在线观看二区 | 模特视频一二三区 | 亚洲国产精品第一区二区 | 欧美日本一本 | 伊人影音 | 欧美精品aaa久久久影院 | 日韩欧美国产一区二区三区 | 中文字幕一区二区在线观看 | 四虎视频国产在线观看 | 夜夜狠狠狠狠 | 96影院| 久久久亚洲欧美综合 | 91精品久久国产青草 | 久久久国产这里有的是精品 | 伊人婷婷色香五月综合缴缴情 | 欧美精品中文字幕手机免费视频 | 可以免费观看的一级片 | 国产一级持黄大片99久久 | 特级毛片全部免费播放a一级 | 欧美日韩中文在线视频 | 在线 | 一区二区三区四区 | 日本久久网站 | 99热这里只有免费国产精品 | 中午字幕在线观看 | 曰本一级毛片免费播放 | 精品视频在线观看一区二区 | 91精品国产91久久久久久 | 久久日本精品99久久久久 | 哪个网站能看毛片 | 成人欧美在线观看免费视频 |