bzoj4402 Claris的劍(組合數學)

2021-09-25 07:14:40 字數 1449 閱讀 6935

傳送門

思路:考慮怎麼才不會算重。

顯然你的序列可以變化成: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..

..xx

+1xx

+1..

.max

max−

1中的任意一種。

證明顯然。

於是我們列舉max

maxma

x是多少就成了簡單組合計數問題。

**:

#include

#define ri register int

using

namespace std;

const

int n=

2e6+5;

typedef

long

long ll;

const

int mod=

1e9+7;

inline

intadd

(const

int&a,

const

int&b)

inline

intdec

(const

int&a,

const

int&b)

inline

intmul

(const

int&a,

const

int&b)

inline

void

add(

int&a,

const

int&b)

inline

void

dec(

int&a,

const

int&b)

inline

void

mul(

int&a,

const

int&b)

inline

intksm

(int a,

int p)

int fac[n<<1]

,ifac[n<<1]

,n,m;

inline

void

init()

inline

intc

(int n,

int m)

intmain()

cout

}

BZOJ 4402 Claris的劍 組合數學

由於存在集合等價的情況,我們就只考慮字典學最小的方案 假設最大值是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...

BZOJ4402 Claris的劍(組合數學)

這裡放傳送門 這題比較關鍵的一點就是注意到題目裡說兩把劍本質不同當且僅當存在一種數字的出現次數不同。也就是說這個東西跟數字的出現順序是無關的。那麼我們可以考慮確定一種排序方式讓每一種本質不同的解都唯一對應一種看起來比較好做的序列。因為每兩個元素相差必須是1,通過多畫幾個試試觀察可以發現每一種合法解都...

bzoj 4402 Claris的劍 組合數學

time limit 10 sec memory limit 256 mb submit 375 solved 213 submit status discuss claris想要鑄一把劍,這把劍必須符合他的審美,具體來說,我們可以把這把劍的不同地方的寬度看成乙個序列,這個序列要滿足以下條件 1.每...