刪數問題(貪心)

2021-09-14 02:42:11 字數 564 閱讀 2140

輸入乙個高精度的正整數n(≤240位),去掉其中任意s個數字後,剩下的數字按原左右次序組成乙個新的正整數。程式設計對給定的n和s,尋找一種方案,使得剩下的數字組成的新數最小。

輸入第1行:乙個正整數n;

第2行:s(s這是乙個大力貪心的問題,要刪掉k個數字,我們每次刪掉乙個數字,都要確保問題處於最優解,即刪掉這個數字後,剩下數字組成的新數是最小的,這樣重複k遍即得到最優解

往往做題者(比如我)有點貪過了,怎麼講,每次都要在這一堆數中刪掉最大的乙個,當wa了幾遍後,我獲得了乙個反例

#include #includeusing namespace std;

char a[300];

int k,i,j,flag;

int main()

}for(;j1.尋找上公升序列的末位,即用a[j]與a[j+1]判斷,若前者大於後者,則前者即為我們要刪掉的數,那麼從a[j]開始,把後面的向前移動,就可以刪掉它。

2.最後輸出的時候,當出現第乙個不為0的數時,flag=1,目的是不輸出前面的0,若無該步驟,若輸入

000175438

4則會輸出 00013,肯定wa。

刪數問題(貪心)

time limit 1000ms memory limit 65536k 有疑問?點這裡 給定n 位 n 100 正整數a,去掉其中任意k n 個數字後,剩下的數字按原次序排列組成乙個新的正整數。對於給定的n 位正整數a和正整數k,設計乙個演算法找出剩下數字組成的新數最小的刪數方案。對於給定的正整...

貪心 刪數問題

題目描述 鍵盤輸入乙個高精度的正整數n 240位 去掉其中任意s個數字後剩下的數字按原左右次序將組成乙個新的正整數。程式設計對給定的n和s,尋找一種方案,使得剩下的數字組成的新數最小。n s 最後剩下的最小數 樣例輸入 178543 4樣例輸出13 這題貪心是要找乙個單調增的數,即保證較小數總在高位...

貪心 刪數問題

problem description 鍵盤輸入乙個高精度的正整數n 100位 去掉其中任意s個數字後剩下的數字按照原來的左右次序組成乙個新的正整數。程式設計對給定的n與s,尋找一種方案,使得剩下的數字組成的新數最小。input 輸入有多組 每組包括原始數n,要去掉的數字數s output 輸出去掉...