P1106刪數遊戲

2022-03-10 18:52:34 字數 849 閱讀 3567

這道題曾經在cqoj上考過,是第二次做了。

這是一道使用字串的貪心題。首先要根據機組例子來確定:刪除遞增序列的最後一位。即迴圈找到那一位後,把後面的數往前壓。所以我在艱難處理完雙重迴圈後(這個處理不是很順暢),便卡在了前導零上四次(cqoj的資料太水)。最後看了下題解,將前導零處理好了,ac。

1.注意前導零的處理:while到第乙個不是零的,如到頭,則cout<<"0"

2.將string在開始時便後移一位,不然彆扭

3.想貪心策略時要多拿幾個例子,找到規律

**:

#include#include

#include

#include

#include

using

namespace

std;

bool flag=false

;string

a;int

s;int len=0

;int

i;int

main()

while(i<=len-2)

len--;

s--;

}i=0

;

while(i<=len-1&&a[i]=='

0')i++;//

處理前導0

if(i==len)printf("0"

);

else

for(int j=i;j<=len-1;j++)

printf("%c

",a[j]);

return0;

}

P1106 刪數問題

傳送門 這道題問給出乙個數字 n位 問刪去任意k位使其剩下位數組成的數字最小 一開始我是覺得刪掉前k大的位數,顯然是不對的。例如,1649,我們刪掉9,那麼結果就為164,如果我們刪掉6就是149,顯然後面的更小的。看了題解才會做,我們要一直找s i s i 1 的數並刪掉,並且肯定能找到,中間找不...

P1106 刪數問題

題目描述 鍵盤輸入乙個高精度的正整數n 不超過250位 去掉其中任意k個數字後剩下的數字按原左右次序將組成乙個新的正整數。程式設計對給定的n和k,尋找一種方案使得剩下的數字組成的新數最小。輸入格式 n 高精度的正整數 k 需要刪除的數字個數 輸出格式 最後剩下的最小數。輸入輸出樣例 輸入175438...

P1106 刪數問題

題目描述 鍵盤輸入乙個高精度的正整數 n 不超過 250 位 去掉其中任意 k 個數字後剩下的數字按原左右次序將組成乙個新的非負整數。程式設計對給定的 n和 k,尋找一種方案使得剩下的數字組成的新數最小。輸入格式 n 高精度的正整數 k 需要刪除的數字個數 輸出格式 最後剩下的最小數。輸入輸出樣例 ...