NYOJ 448 尋找最大數

2021-06-27 09:06:34 字數 1847 閱讀 8409

時間限制:

1000 ms  |  記憶體限制:

65535 kb

難度:2 描述

請在整數 n 中刪除m個數字, 使得餘下的數字按原次序組成的新數最大,

比如當n=92081346718538,m=10時,則新的最大數是9888

輸入

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

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

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

樣例輸入

2

92081346718538 10

1008908 5

樣例輸出

9888

98

/*題解:

貪心策略,每次求出區域性最優達到全域性最優。   

第一次:由於最終僅輸出4個數,故第一次要找5、3、8之前的數中最大的數,記錄下標並輸出。

第二次:在第一次找出的最大數之後 和 3、8之前的數中最大的數,記錄下標並輸出。

第三次:在第二次找出的最大數之後 和 8之前的數中最大的數,記錄下標並輸出。

依此類推(如上圖)......直至(end>=len)

**:

ac**

# include # include int main(void)

st = flag + 1;

end++;

printf("%c",max);

}printf("\n");

}return 0;

}

最優**:

#include

02.#include

03.intmain()

04.

20.ans[l-k] ='\0';

21.puts(ans);

22.}

23.return0;

24.}

#include02.#include03.intmain()04.

20.ans[l-k] ='\0';

21.puts(ans);

22.}

23.return0;

24.}

nyoj448尋找最大數

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

nyoj 448 尋找最大數

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

NYOJ 448 尋找最大數

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