貪心之刪數問題

2021-08-17 15:55:29 字數 866 閱讀 5100

刪數問題

time limit: 1000 ms memory limit: 65536 kib

submit statistic discuss

problem description

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

input

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

output

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

sample input

178543 4

sample output

hint

source

#include 

#include

#include

char a[101];

int main()

//這邊i每一次都比len小1,所以每次都會減乙個,剛好減s個

}len=strlen(a);//這個地方的len要進行重置,因為a有刪除的部分,所以長度是改變了的

while(len>1&&a[0]=='0')

len--;

}//這個地方分2種情況,一種是都為0,那麼限制條件就是len>1,另一種情況就是不全為0,這時候就要看a[0]是不是0進行判斷

printf("%s\n",a);

}return

0;}

think:

刪數要從高位往低位刪,並且如果是遞增序列,那麼就刪除最後乙個數,反之,如果出現了遞減,就刪除當前位;這個**分兩部分,一部分是進行刪除判斷的,另一部分是輸出判斷的(前置是否為0);

貪心之刪數問題

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

刪數問題(貪心)

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