448 尋找最大數 (貪心)

2021-06-22 16:01:08 字數 1031 閱讀 3251

描述

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

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

輸入

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

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

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

樣例輸入

2

92081346718538 10

1008908 5

樣例輸出

9888

98

第一種方法:
#include#include#include#includeusing namespace std;

int main()

{    string st;

int n,m;

char ans[110]; 

scanf("%d",&n);

while(n--){

cin>>st>>m;

int l=st.size();

for(int i=0,p=-1;i第二種方法:

#include #include int main()

{   int t;

scanf("%d",&t);

while (t--)

{int m,n,z,i,j,x=0,c;

char a[100];

scanf("%s%d",a,&m);

n=(int)strlen(a);

z=n-m;

char b[z+1];

b[z]='\0';

for (i=x; i兩種方法都不錯,還要繼續加把勁,貪心,就是遵循某種規則,不斷貪心的選取當前最優策略,注重細節,慎重!

貪心 NYOJ448 尋找最大數

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

NYOJ448 尋找最大數(貪心)

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

南陽448 尋找最大數

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