由於存在集合等價的情況,我們就只考慮字典學最小的方案
假設最大值是ma
x ,那麼構造出的序列有兩種情況 1,
2,1,
2,1,
2....3,2
,3,2
,3....ma
x−2,
max−
1,ma
x−2,
max−
1....ma
x 1,
2,1,
2,1,
2....3,2
,3,2
,3....ma
x−2,
max−
1,ma
x−2,
max−
1....ma
x,ma
x−1
1..max
的所有數都至少出現一次然後剩餘的空間必須成對的插入.
那麼我們就先構造出了1,
2,3..max
的數列然後再插入其他的數
比如我們可以在
1 和
2之間插入任意個數對(2
,1)
更一般的來說可以在
i 和i+
1之間插入任意個數對(i
+1,i
) 假設剩餘的空間有
n 個,可以選擇的數對有
m種,那麼方案數就是c(
⌊n2⌋
+m,m
) 第一次做組合數學的題……被慘虐qaq
#include
#define n 2000200
#define r 1000000007
using namespace std;
long long fac[n],inv[n],ans;
int n,m;
long long cal(int n,int
m)int main()
BZOJ4402 Claris的劍(組合數學)
這裡放傳送門 這題比較關鍵的一點就是注意到題目裡說兩把劍本質不同當且僅當存在一種數字的出現次數不同。也就是說這個東西跟數字的出現順序是無關的。那麼我們可以考慮確定一種排序方式讓每一種本質不同的解都唯一對應一種看起來比較好做的序列。因為每兩個元素相差必須是1,通過多畫幾個試試觀察可以發現每一種合法解都...
bzoj4402 Claris的劍(組合數學)
傳送門 思路 考慮怎麼才不會算重。顯然你的序列可以變化成 121 2.xx 1xx 1.ma x1 2 1 2.x x 1 x x 1.max 1212.xx 1xx 1.max和12 12.xx 1xx 1.ma xmax 1 1 2 1 2.x x 1 x x 1.max max 1 1212....
bzoj 4402 Claris的劍 組合數學
time limit 10 sec memory limit 256 mb submit 375 solved 213 submit status discuss claris想要鑄一把劍,這把劍必須符合他的審美,具體來說,我們可以把這把劍的不同地方的寬度看成乙個序列,這個序列要滿足以下條件 1.每...