題目描述:
給定一正整數n(n的位數小於240),現要刪除數n中的s個數碼,使其得到的新數最小,求這個最小數。
輸入輸入有兩行,第一行為整數n,第二行即為s
輸出輸出一行,即最小的那個數
測試樣例1
輸入輸出
測試樣例2
輸入輸出
解題思路
首先考慮s=1時的情況,很容易知道如果只刪乙個數,那麼若各位數字遞增則刪除最後乙個數,否則刪除第乙個遞減區間的首字元,這樣刪除便可以得到最小的數。而對於s>1時,我們只需要重複這種操作s次,得到的操作就是所求的最小數。
程式**
usingsystem;
using
system.text;
namespace
tanxin
public
static
stringbuilder getminnum(
string
n, ints)}
if(!flag)
}return
str;}}
}
刪數問題 題解
本題使用貪心思想 乙個讓這串數字越小,它的高位數就得越小。我們每次刪除要使得刪除後的數高位盡量的小。每一次刪除時,從最高位開始向低位數遍歷,當遇到的一位數比它的更高位更小時,我們就刪除它的更高一位,讓這個更小的數 篡位 就可以保證這串數更小。下一次刪除時,要也從新從最高位開始。需要注意的地方 刪除了...
題解 刪數問題 Noip1994
時間限制 1000 ms 記憶體限制 65536 kb 提交數 11506 通過數 3852 輸入乙個高精度的正整數n,去掉其中任意s個數字後剩下的數字按原左右次序組成乙個新的正整數。程式設計對給定的n和s,尋找一種方案使得剩下的數字組成的新數最小。輸出新的正整數。n不超過240位 輸入資料均不需判...
數獨問題解題報告
valid sudoku 九宮格就是要求每一行 每一列 每乙個粗線宮內的數字均含1 9,不重複。所以這裡我們的思路就是一次檢查每一行,每一列中是否有重複的數字如果有則返回false class solution cols for int j 0 j 9 j 當需要分割大的變為小的,可以通過次數來進行...