南陽理工acm 448尋找最大數(簡單貪心)

2021-08-01 21:32:11 字數 1040 閱讀 3856

時間限制:

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

**第六屆itat複賽b卷2題改編

上傳者acm_趙銘浩

想法:首先我們要真確理解題意:請在整數 n 中刪除m個數字, 使得餘下的數字按原次序組成的新數最大,

刪除這m個數,不是意味從位數上為0開始刪除m個位數再輸出就行。例如:8890刪除一位數,是890而不是889.

可以知道新組成的這個數的位數=n的位數—m。(注第一位為數值最高位)

那麼我們首先要找到組成這個最大數的第一位的數值,那則是從第一位到第m位中最大的,(假設最大為第n位)

組成這個最大數的第二位的數值,則是從第n位到第m+1位中最大的。

核心**:

while(mflag;i--)

}m++;

flag=count;

printf("%d",ws-'0');

}**:

#include

#include

char a[110];

int main()

}m++;

flag=count;

printf("%d",ws-'0');

}printf("\n");

}return 0;

}

南陽448 尋找最大數

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

南陽448 尋找最大數

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

南陽題目448 尋找最大數

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