【題目描述】輸入乙個高精度的正整數n,去掉其中任意s個數字後剩下的數字按原左右次序組成乙個新的正整數。程式設計對給定的n和s,尋找一種方案使得剩下的數字組成的新數最小。
輸出新的正整數。(n不超過240位)
輸入資料均不需判錯。
【輸入】ns
【輸出】
最後剩下的最小數。
【輸入樣例】
175438
4【輸出樣例】
13
要考慮怎麼刪數是最小,這裡的想法就是貪心;
從高位到低位看,如果高位大於低位,那麼刪掉高位的數:175438,1<7,不管;7>5,刪掉7;15438,5>4,刪5;
高位數越大,這個數就越大,所以我們要從高位來看,高位和下一位比較;
如果是遞增的數,那麼就刪最後一位;位數變少,數字也會比刪其他的要少;例如:123456;
#include usingnamespace
std;
intmain()
}len--; //如果不滿足條件 (都是遞增的數),那麼長度直接減1;適用於123456這種情況;其實不管滿不滿足比較的條件,長度都會減1
}i=0
;
while(i<=len-1&&a[i]=='0'
) i++;
if(i==len)
cout
<<"0"
for(j=i;j<=len-1;j++)
cout
}
1321 刪數問題 Noip1994
輸入乙個高精度的正整數n,去掉其中任意s個數字後剩下的數字按原左右次序組成乙個新的正整數。程式設計對給定的n和s,尋找一種方案使得剩下的數字組成的新數最小。輸出新的正整數。n不超過240位 輸入資料均不需判錯。ns 最後剩下的最小數。175438 4 13 created on 2020 2 11 ...
題解 刪數問題 Noip1994
時間限制 1000 ms 記憶體限制 65536 kb 提交數 11506 通過數 3852 輸入乙個高精度的正整數n,去掉其中任意s個數字後剩下的數字按原左右次序組成乙個新的正整數。程式設計對給定的n和s,尋找一種方案使得剩下的數字組成的新數最小。輸出新的正整數。n不超過240位 輸入資料均不需判...
1321 例6 3 刪數問題 Noip1994
輸入乙個高精度的正整數n,去掉其中任意s個數字後剩下的數字按原左右次序組成乙個新的正整數。程式設計對給定的n和s,尋找一種方案使得剩下的數字組成的新數最小。輸出新的正整數。n不超過240位 輸入資料均不需判錯。ns 最後剩下的最小數。175438 4 13 include includeusing ...