# Leetcode 解題記錄 3343. Count Number of Balanced Permutations
### 題目大意:
給定一個由數字組成字串(可以是0開頭) : num
將num重新排列,有多少排列方式是奇數位的總和與偶數為總和相等?
### 解法思路:
這題聞起來就很像上次讓我破大房的[題目](https://hackmd.io/bND5dxEMQyuDDbBMU3-Lng),幾乎有87%像
先統計每種數字有幾個:
`cnt = [0:10, 1:3, 2:4, ..., 9:3] // 10個'0',3個'1',4個2,....,3個9`
dp會長這樣:
`dp[i][m][sum]``:
* i :當前處理的數字,i in `[0,1,2,3,4,5,6,7,8,9]`
* m :當前狀態偶數位有幾個數字
* sum :當前狀態偶數位數字和
轉移函數會是:
* p :偶數位增加p個'i'
```
dp[i][m+p][s+p*i] += dp[i-1][m][s]/(p!*(cnt[i]-p)!);
```
最後在結果在乘上`(n/2)!*(n-n/2)!`
以上都要做`modulo 1e9+7`
### Murmur
看完這題才恍然大悟,如果寫過這題也許那破房題是有機會解出來的(這題的題號比較早),雖然說那題的狀態壓縮真的很鬼...