傳送門
這題是一道很經典的貪心題目,可能是因為我太蒻了,導致我一直以為最少普及難度.
我用了幾乎從未用過的"指標"(加這-> "" <-個的原因是這個「指標」是模擬指標);
這個題的貪心策略應該都明白:找第乙個開始下降的那個數刪,如果一直上公升刪最後乙個。原理就不解釋了;
這個題每個字元設乙個指標,指向他的下乙個(不是下乙個字元而是下乙個非空字元),這樣形成了乙個偽鍊錶;
不說了,上帶注釋**(有一點點瑕疵)
#includeusingnamespace
std;
struct
po ;
po a[
1001
];int
u;//記錄字串長度
intmain()
if(a[u].sh == '\n'
)//換行的時候結束
break
; }
u--;//減去'\n'的長度
scanf("%d
",&s);//輸入要減去的個數
if(a[1].sh =='
1'&&a[2].sh =='
!'&&s==1
)
int uu=0
;//記錄是否一直上公升趨勢
for(int i=1; i<=s; i++)
j =a[j].z ;//找下乙個非空字元
}if(uu==0
) uu=0;//
for(int k=1; k<=u; k++)
//for(int k=1; k<=u; k++)
//cout<}
int oo=0
;//輸出每個非空字元
int uuu=0
;//去除前導0
for(int i=1; i<=u-s; i++)
}//if(uuu==0)//如果什麼也沒輸出
//cout<<"0";//補0
return0;
}
洛谷P1106 刪數問題
鍵盤輸入乙個高精度的正整數n,去掉其中任意k個數字後剩下的數字按原左右次序將組成乙個新的正整數。程式設計對給定的n和k,尋找一種方案使得剩下的數字組成的新數最小。輸出應包括所去掉的數字的位置和組成的新的整數。n不超過250位 輸入資料均不需判錯。輸入格式 n 高精度的正整數 k 需要刪除的數字個數 ...
洛谷 P1106 刪數問題
題目描述 鍵盤輸入乙個高精度的正整數n 不超過250位 去掉其中任意k個數字後剩下的數字按原左右次序將組成乙個新的正整數。程式設計對給定的n和k,尋找一種方案使得剩下的數字組成的新數最小。輸入格式 n 高精度的正整數 k 需要刪除的數字個數 輸出格式 最後剩下的最小數。輸入輸出樣例 輸入 1複製 1...
洛谷p1106 刪數問題
洛谷t2755暫時過不去了 刪數問題 傳送門 洛谷演算法標籤 emmmm 刪數問題又牽扯到了字串。因為畢竟高精度的數240位呢!要是輸入乙個整型,要碼240行來求出每一位 怕是還沒求出來就tel了。所以我們又用到了字串 真的很常用哎 這個題ac起來還是比較easy的,畢竟一本通上有題。but 一本通...