貪心演算法 尋找剩餘最大數

2021-07-14 08:32:22 字數 694 閱讀 1233

描述

請在整數 n 中刪除m個數字,

使得餘下的數字按原次序組成的新數最大,比如當n=92081346718538,m=10時,則新的最大數是9888

輸入第一行輸入乙個正整數t,表示有t組測試資料

每組測試資料佔一行,每行有兩個數n,m(n可能是乙個很大的整數,但其位數不超過100位,並且保證資料首位非0,m小於整數n的位數)

輸出每組測試資料的輸出佔一行,輸出剩餘的數字按原次序組成的最大新數

樣例輸入

2 92081346718538 10 1008908 5

樣例輸出

9888 98

貪心演算法:每一次尋找區域性最優,最後使達到全域性最優。

這道題貪心演算法體現很明顯,故記錄之。

思路:首先要明白,在一串數中,我們如果要去掉之中n位後還剩m位,那麼剩餘的最大數的最高位的位置就不可能在倒數的第(m-1)位到最後一位裡面,不然就湊不齊m位整數,與題意矛盾了。

題目要求順序輸出,一種方案是找到了就直接輸出,另一種方案用臨時陣列做標記。

**如下:

#include

#include

int main()

}printf("%c",n[maxj]);

}printf("\n");

}}

NYOJ 448 尋找最大數(貪心演算法)

時間限制 1000 ms 記憶體限制 65535 kb 難度 2 描述 請在整數 n 中刪除m個數字,使得餘下的數字按原次序組成的新數最大,比如當n 92081346718538,m 10時,則新的最大數是9888 輸入 第一行輸入乙個正整數t,表示有t組測試資料 每組測試資料佔一行,每行有兩個數n...

南陽oj貪心演算法之尋找最大數

尋找最大數 時間限制 1000 ms 記憶體限制 65535 kb 難度 2 描述請在整數 n 中刪除m個數字,使得餘下的數字按原次序組成的新數最大,比如當n 92081346718538,m 10時,則新的最大數是9888 輸入 第一行輸入乙個正整數t,表示有t組測試資料 每組測試資料佔一行,每行...

尋找最大數 貪心

描述 請在整數 n 中刪除m個數字,使得餘下的數字按原次序組成的新數最大,比如當n 92081346718538,m 10時,則新的最大數是9888 輸入 第一行輸入乙個正整數t,表示有t組測試資料 每組測試資料佔一行,每行有兩個數n,m n可能是乙個很大的整數,但其位數不超過100位,並且保證資料...