HDU4699 Editor 對頂棧,模擬

2021-09-06 02:12:30 字數 540 閱讀 4941

hdu4699——editor

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

#include using namespace std;

const int inf = -0x3f3f3f3f;

int sum[10000006];

int f[10000006];

int main(int argc, char const *argv)

else if(option == 'd')

else if(option == 'l')

else if(option == 'r')

else if(option == 'q')

} }return 0;

}

題解 hdu4699 對頂棧

題目鏈結 對於i x 操作 1.把x插入棧a 2.更新sum pa sum pa 1 a pa 3.更新f pa max f pa 1 sum pa 對於d操作,把a的棧頂出棧。對於l操作,彈出a的棧頂,插入到b中。對於r操作 1.彈出b的棧頂,插入到a中。2.更新sum pa sum pa 1 a...

HDU4699 Editor(雙棧對彈)

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

hdu 4699 Editor 雙棧維護最長字首

今天上午看了解題報告,突然覺得好簡單,還是接觸的少了,思路不開闊,想不到好的思路。思路 用兩個棧分別維護游標的前後,用陣列記錄游標前的棧的最大字首和!include include include include include include include include include inc...