hdu 4699 Editor 雙棧維護最長字首

2021-06-18 01:24:08 字數 621 閱讀 4285

今天上午看了解題報告,突然覺得好簡單,還是接觸的少了,思路不開闊,想不到好的思路。。。

思路: 用兩個棧分別維護游標的前後,用陣列記錄游標前的棧的最大字首和!

#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;

#define rep(i,n) for(int i=0; i=(m); --i)

#define ll long long

#define arc(a) ((a)*(a))

#define inf 100000

#define exp 0.000001

#define n 1000100

stacka,b;

int n,len;

int dp[n],sum[n];

int main()

else if(s[0]=='d')

}else if(s[0]=='l')

}else if(s[0]=='r')

}else}}

return 0;

}

HDU4699 Editor(雙棧對彈)

題目鏈結 1.題目大意 文字編譯游標。有如下操作 1 每次在游標後插入乙個元素,游標隨即移動到序列尾部 2 在游標前面有元素的情況下刪除游標的前乙個元素 三 如果游標不在序列頭部就將游標左移 四 如果游標不在序列尾部就將游標右移 五 查詢當前游標前的最大字首和 2.第一眼想到,用陣列維護所有元素的字...

HDU4699 Editor 對頂棧,模擬

hdu4699 editor 大致思路 建立兩個棧a,b。a棧儲存序列開頭到當前游標位置的這一段子串行,b儲存當前游標位置到序列結尾這一段子串行。用陣列f維護棧a的字首和的最大值,sum用來記錄字首和的值。對於操作i,把x插入棧a,並且更新f pa sum pa 的值,對於操作d,把a的棧頂出棧,對...

HUD4699 Editor 模擬 陣列處理

這道題目的題意很明確,給你五種操作,然後針對每次查詢輸出查詢的第k個數字之前所有1 m m k m個數字之和最大的值。有插入的題目用鍊錶挺好做的,不過這裡我用的是乙個陣列,用cnt記錄游標位置,因為查詢只查詢游標左邊邊的值 所以後面如果查詢大於cnt,則置為cnt 所以我們想到每次插入乙個值就更新一...