2020牛客寒假演算法基礎集訓營4 E題

2021-10-02 18:22:37 字數 1076 閱讀 7110

補題ing,簡單的貪心+模擬啦

傳送門

題目的大概意思是說給你一組字串(只包含數字1-9和『+』),可以打亂順序,然後求表示式的最小值。

這道題的思路就是看看有幾個加號,比如有2個加號,那我們就需要三個數字讓他們組成合法的表示式。

我們先對輸入的字串進行處理,統計一下每個數字的個數和加號的個數

貪心策略:我們要組成最小的表示式,就需要讓當前最大的數字放在最低位,比如91+82這個表示式,我們要把數字9和數字8放在個位(最低位),當然這個地方是要根據有多少個『+』來決定的,我們當然希望把所有的數字都放在個位,但是『+』不允許呀!!!

我們組成的表示式的數字的個數=『+』的個數+1

因為題目要求的字串可以達到5e5,所以我們就按照大數相加的方式處理呀~

所以我們先處理個位,處理『+』的個數+1次,然後再處理十位,百位,千位等等

(賽後補題的時候wa了兩次,因為我在輸出的時候從最大的n開始的,但是我開的陣列最大的就是n,陣列越界了qaq)

長記性了,後來我把陣列開大點就好啦

上**啦~

#include

#define mst(a, n) memset(a, n, sizeof(a))

using

namespace std;

const

int n =

5e5+10;

string s;

int n;

int cnt[10]

;int sum[n +10]

;int p, cp;

int ccnt =1;

intmain()

else

}for

(int i =

9; i >=

1; i--)}

}for

(int i =

0; i < n; i++

)int opt =0;

for(

int i = n; i >=

0; i--)}

cout << endl;

return0;

}

結束啦~我們下次見

2020牛客寒假演算法基礎集訓營

長期更新,補完為止 2 g 判正誤 題意 t組資料。判斷a d b e c f是否等於g。1e9 a,b,c,g 1e9,0 d,e,f 1e9。保證不會出現指數和底數同為 0 的情況。思路 硬算會tle或mle。快速冪取模,為了增加過題概率,多取幾個模數判斷。includeusing namesp...

2020牛客寒假演算法基礎集訓營1

找規律,推公式 三角形個數為2 m n m n m 1 n 1 2 m n mn m 1 n 1 2 m n mn m 1 n 1 include include include include using namespace std typedef long long ll const int m...

2020牛客寒假演算法基礎集訓營1

h題 突然發現h題可以用好多種方法做的。方法一 雙指標,維護乙個修改次數小於等於k的區間 include using namespace std typedef long long ll const int mod 1e9 7 const int n 1e5 5 const int inf 0x3f...