51nod 1621 花錢買車牌 優先佇列

2022-09-07 13:27:08 字數 2180 閱讀 8735

乙個車牌號由n位數字組成。如果乙個車牌至少有k位數字是相同的,那麼我們就說這個車牌漂亮的車牌。現在華沙想要改變他自己的車牌,使得他的車牌變得漂亮。當然,改車牌是要花錢的。每改變一位數字所要花費的費用等於當前位上的新舊數字之差的絕對值。那麼總費用就是每位上所花費用的總和。

舉例如下,

舊牌為0123,新牌為7765,那麼對應第一位所花費用為|0-7|=7,第二位為|1-7|=6,第三位為|2-6|=4,第四位為|3-5|=2,總和為7+6+4+2=19

華沙想用最少的錢,使他的車牌變得漂亮起來。現在給定n,k,和舊牌的號碼,計算換牌的最少費,以及新牌的號碼,

如果最少費用的號碼有多個,我們取字典序最小的那個。

樣例解釋:

在樣例中,把第二個數字換成「8」花費|9-8|=1,把第五個數字換成「8」也花了1。

把第六個數字換成「8」花費|6-8|=2.總費用為1+1+2=4,新號碼為「888188」

兩個長度為n的序列比較方法如下。

存在兩個序列x,y,長度都是n。

如果存在i(1≤i≤n)和任意j(1≤j<i)使得 xi<yi

並且 xj=yj

,那麼我們就說x比y小。

input

單組測試資料

第一行,兩個由空格隔開的數字n和k(2≤n≤10^4,2≤k≤n),表示舊牌的位數,和至少要有k位數字相同才能構成漂亮的車牌。

第二行有n位數字,代表華沙的舊車牌。(舊車牌中只有數字)。

output

共兩行,

第一行,乙個整數,代表換牌的最小費用,

第二行,n位數字,表示新的車牌。

如果最小費用的車牌有多個,輸出字典序最小的那個。

input示例

6 5

898196

output示例

4

1 #include 2

using

namespace

std;

3 #include

4 #include

5 #include6 #include7 #include8 #include9 #include10 #include11 #include12 #include13 #include 14 #include 15 #include16 #include17

struct

lll18

s;22

intbiaozhun;

23struct

cmp2

44else

4551}52

}53};54 priority_queue,cmp2>tm[10

];55

char a[11000

];56

char goubi1[11000

];57

char goubi2[11000

];58

int b[15][11000

];59

intn,m;

60int gougougou[20

];61

int panduan(char s1,char

s2)62

70return0;

71}72int mp[20

];73

intmain()

7486

for(int i=0;i<=9;i++)

8796}97

int min1=1e8;

98int

sum;

99int

t;100

for(int i=9;i>=0;i--)

101109

if(gougougou[i]<=min1)

110114

115}

116 cout

117for(int i=0;i)

118122

for(int i=t+1;i<=9;i++)

123131

//cout<132

if(panduan(goubi1,goubi2)==0

)133

139}

140else

141146

}147

}148

}149 cout

150return0;

151 }

view code

51nod1621 花錢買車牌

乙個車牌號由n位數字組成。如果乙個車牌至少有k位數字是相同的,那麼我們就說這個車牌漂亮的車牌。現在華沙想要改變他自己的車牌,使得他的車牌變得漂亮。當然,改車牌是要花錢的。每改變一位數字所要花費的費用等於當前位上的新舊數字之差的絕對值。那麼總費用就是每位上所花費用的總和。舉例如下,舊牌為0123,新牌...

51Nod1621 花錢買車牌

乙個車牌號由n位數字組成。如果乙個車牌至少有k位數字是相同的,那麼我們就說這個車牌漂亮的車牌。現在華沙想要改變他自己的車牌,使得他的車牌變得漂亮。當然,改車牌是要花錢的。每改變一位數字所要花費的費用等於當前位上的新舊數字之差的絕對值。那麼總費用就是每位上所花費用的總和。舉例如下,舊牌為0123,新牌...

51nod 1621花錢買車牌(貪心)

乙個車牌號由n位數字組成。如果乙個車牌至少有k位數字是相同的,那麼我們就說這個車牌漂亮的車牌。現在華沙想要改變他自己的車牌,使得他的車牌變得漂亮。當然,改車牌是要花錢的。每改變一位數字所要花費的費用等於當前位上的新舊數字之差的絕對值。那麼總費用就是每位上所花費用的總和。舉例如下,舊牌為0123,新牌...