poj3617字典序最小問題 貪心

2021-09-10 15:50:45 字數 507 閱讀 8642

題目大意:

給定長度為n的字串s,要構造乙個長度為n的字串t。構造方法為:

.從s頭部刪除乙個字元,加到t的尾部

.從s尾部刪除乙個字元,加到t的尾部

解題思路:

是一道貪心的水題,但也有值得學習的地方。程式設計技巧上,使用的方法比較獨特,每次都要搜尋一次,時間複雜度會高一點,但這道題怎麼寫肯定都不會超時,所以下面這種寫法簡單邏輯清晰。

#include#include#includeusing namespace std;

char s[3000];

int n,st,ed;

void solve()

} if(l) printf("%c",s[st++]);

else printf("%c",s[ed--]);

} printf("\n");

}int main()

solve();

} return 0;

}

字典序最小問題(POJ3617)

題目大意 給定長度為n的字串s,要構造乙個長度為n的字串t。起初,t是乙個空串,隨後反覆進行下列任意操作。從s的頭部刪除乙個字元,加到t的尾部 從s的尾部刪除乙個字元,加到t的尾部 目標是構造字典序盡可能小的字串。輸入 6 acdbcb 輸出abcbcd 解題思路 這道題我們很容易想到,不斷取開頭或...

poj 3617字典序最小 貪心

思路 定義乙個標記位left 表示是否輸出的左邊的字元 逐個比較首尾 0與n比 1與n 1比較 2與n 2比較.每當滿足比較條件 即兩個字元不相同,一大一小 就給標記位標記上,最後根據標記位的值進行輸出,切記每行滿80字元要換行 pe所在 ac include include include inc...

貪心專練2 最小字典序排序POJ3617

題目大意 給定長度為n的字串s,要構造乙個長度為n的字串t。起初,t是乙個空串,隨後反覆進行下列任意操作。從s的頭部刪除乙個字元,加到t的尾部 從s的尾部刪除乙個字元,加到t的尾部 目標是構造字典序盡可能小的字串。input 6 acdbcb output abcbcd 思路 最優規則 1.不斷比較...