貪心之刪數問題

2021-09-13 22:06:37 字數 703 閱讀 2684

problem description

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

input

輸入有多組 每組包括原始數n,要去掉的數字數s;

output

輸出去掉s個數後最小的數

sample input

178543  4
sample output

13
題解:

使用貪心,刪去遞增區間末位或遞減區間首位,取得區域性最優解,同時注意處理0為前置時的情況

例如1002 2 結果為0 而不是00

#include #include #include #include using namespace std;

int main()

//n次迴圈,刪去遞增區間末位或遞減區間首位,實現區部貪心

while(s--)

//進行前移

len--;

for(int i=j;i}

//處理前置字元為0

int i=0;

while(a[i]=='0'&&iif(i==len) cout<<"0"

cout<}

}return 0;

}

貪心之刪數問題

刪數問題 time limit 1000 ms memory limit 65536 kib submit statistic discuss problem description 鍵盤輸入乙個高精度的正整數n 100位 去掉其中任意s個數字後剩下的數字按照原來的左右次序組成乙個新的正整數。程式設...

刪數問題(貪心)

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 這題貪心是要找乙個單調增的數,即保證較小數總在高位...