日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

tyvj1305 最大子序和 【单调队列优化dp】

發布時間:2025/7/14 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 tyvj1305 最大子序和 【单调队列优化dp】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

描述

輸入一個長度為n的整數序列,從中找出一段不超過M的連續子序列,使得整個序列的和最大。

例如?1,-3,5,1,-2,3

當m=4時,S=5+1-2+3=7
當m=2或m=3時,S=5+1=6

輸入格式

第一行兩個數n,m
第二行有n個數,要求在n個數找到最大子序和

輸出格式

一個數,數出他們的最大子序和

測試樣例1

輸入

6 4?
1 -3 5 1 -2 3

輸出

7

備注

數據范圍:
100%滿足n,m<=300000

題解

我們由題設f[i]為i位置最大子段和,得到狀態轉移方程f[i] = max(f[i - 1],sum[i] - sum[k]); ?【i - k <= m】 很明顯這樣做是O(n ^ 2) 對于求sum[i] - sum[k]的最大值,我們可以用單調隊列優化
單調隊列 單調隊列,顧名思義,就是單調的隊列,用以O(1)求最值 單調隊列用雙向隊列維護,隊首是最值【假設是最大】 每次我們向隊尾插入一個元素時,我們若隊尾的元素比它要小就將他刪除,直至隊列為空或者隊尾元素大于插入 元素,再將其插入 例如5 3 1,我們要插入4 檢查1 < 4,隊列變為5 3 檢查3 < 4,隊列變為5 檢查5 > 4,隊列變為5 4 插入完成
你會發現這樣的操作能滿足隊列一定單調,而隊首就是我們要的值 但注意隨著時間的推移,隊首元素可能“過時”,就是超出了我們所規定的范圍,這個時候就刪除隊首,直至滿足范圍 由于每個元素最多進隊出隊一次,所以總復雜度O(n)
那么這題就好做了,我們用一個單調隊列維護前m個sum值,每次只用O(1)就可以轉移方程 復雜度O(n)
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #define LL long long int #define REP(i,n) for (int i = 1; i <= (n); i++) #define fo(i,x,y) for (int i = (x); i <= (y); i++) #define Redge(u) for (int k = head[u]; k != -1; k = edge[k].next) using namespace std; const int maxn = 300005,maxm = 100005,INF = 1000000000; inline int read(){int out = 0,flag = 1;char c = getchar();while (c < 48 || c > 57) {if (c == '-') flag = -1; c = getchar();}while (c >= 48 && c <= 57) {out = out * 10 + c - 48; c = getchar();}return out * flag; } int n,m,q[maxn],head,tail,sum[maxn],f[maxn]; int main() {n = read(); m = read();REP(i,n) sum[i] = sum[i - 1] + read();head = tail = 0; q[head] = 0;for (int i = 1; i <= n; i++){while (i - q[head] > m) head++;f[i] = max(f[i - 1],sum[i] - sum[q[head]]);q[++tail] = i;while (tail > head && sum[q[tail]] < sum[q[tail - 1]]) q[tail - 1] = q[tail],tail--;}cout<<f[n]<<endl;return 0; }

轉載于:https://www.cnblogs.com/Mychael/p/8282827.html

總結

以上是生活随笔為你收集整理的tyvj1305 最大子序和 【单调队列优化dp】的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 一区二区三区偷拍 | 黄色私人影院 | 国产精品27p | 亚洲天堂一级片 | fc2ppv在线播放| 欧美69囗交视频 | 亚洲精品国产美女 | 久久精品视频16 | 国产乱码精品1区2区3区 | 天美麻花果冻视频大全英文版 | 中文在线观看免费高清 | 永久免费的网站入口 | 超薄肉色丝袜一区二区 | 九九久视频 | 欧美一区二区三区观看 | 蜜臀久久精品久久久用户群体 | 国产亚洲欧美视频 | 久久久久久综合网 | 日韩视频在线观看免费 | 国产福利资源 | 中文字幕日韩欧美一区二区 | 福利精品| 色婷婷av久久久久久久 | 色啊色 | 操模特 | 久久九九久久九九 | 国产精华7777777 | 蜜桃成熟时李丽珍在线观看 | 成人激情视频网站 | 久久鲁视频 | 中文字幕日韩精品一区 | 天天摸日日操 | 熟妇人妻无乱码中文字幕真矢织江 | 色就是色av | www.在线视频 | 成人精品免费在线观看 | 男人的天堂avav | av手机在线观看 | 嫩草嫩草嫩草嫩草嫩草嫩草 | 四虎国产精品成人免费入口 | 又粗又猛又爽又黄少妇视频网站 | 奇米影视亚洲春色 | 高h捆绑拘束调教小说 | 99国产精品国产免费观看 | 日韩免费三级 | 一区二区欧美在线 | 欧美性猛交久久久乱大交小说 | 殴美一级黄色片 | 人妻无码中文字幕免费视频蜜桃 | 精品伊人久久 | 欧美一级二级视频 | 秋霞视频在线 | 一级片在线免费观看 | 久久精品久久精品久久 | 亚洲 另类 春色 国产 | 亚洲免费视频一区二区 | 四虎影院在线免费播放 | 日韩在线观看你懂的 | 人人爽人人爽人人爽人人爽 | 国产丝袜第一页 | 亚洲第一国产视频 | 天堂一区| 久久9久久 | www.性欧美 | 久草小说 | 亚洲国产精品区 | 国产精品9191 | 免费视频一二三区 | jizz亚洲女人高潮大叫 | 日本福利一区二区 | 欧美日韩高清一区二区三区 | 国产高潮失禁喷水爽到抽搐 | 亚洲爱爱网 | 黄色不卡 | 国产精品xx| 91视频免费网址 | av中出在线 | 亚洲天堂热 | 免费一级淫片aaa片毛片a级 | 亚洲久久久久久久 | av图片在线观看 | 深爱激情av | 亚洲网站在线播放 | 自拍偷拍国产 | 日本一区二区久久 | 欧美精品成人在线 | 麻豆av一区二区三区久久 | 欧美色图激情小说 | 亚洲综合一 | 日日干天天 | 国产美女性生活 | 本道久久 | 欧美日韩中文字幕在线观看 | 伊人久久香 | 欧美日韩综合精品 | 自拍偷拍亚洲精品 | 最新av网站在线观看 | 另类一区二区三区 | 手机av免费观看 |