洛谷p1106 刪數問題 題解

2022-05-08 05:30:10 字數 1025 閱讀 7892

傳送門

這題是一道很經典的貪心題目,可能是因為我太蒻了,導致我一直以為最少普及難度.

我用了幾乎從未用過的"指標"(加這->  ""  <-個的原因是這個「指標」是模擬指標);

這個題的貪心策略應該都明白:找第乙個開始下降的那個數刪,如果一直上公升刪最後乙個。原理就不解釋了;

這個題每個字元設乙個指標,指向他的下乙個(不是下乙個字元而是下乙個非空字元),這樣形成了乙個偽鍊錶;

不說了,上帶注釋**(有一點點瑕疵)

#includeusing

namespace

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 一本通...