小a的強迫症(組合數學)

2022-02-27 07:00:04 字數 1039 閱讀 1686

小a是一名強迫症患者,現在他要給一群帶顏色的珠子排成一列,現在有n種顏色,其中第i種顏色的柱子有num(i)個。要求排列中第i種顏色珠子的最後乙個珠子,一定要排在第i+1種顏色的最後乙個珠子之前。問有多少種排列珠子的方案。

第一行:

乙個整數n,表示珠子顏色數量

第二行:

n個整數,分別表示每種珠子的顏色數量

排列方案數,對998244353取餘

對此,我要狠狠的揍一通我的電腦和我的腦子(電腦你為什麼突然開不了機?我為什麼本來想的是正解卻超級複雜???)

其實這道題很水

對於第一次放進來的我們不管,因為它不管有多少,排列的方式都只有一種

從第二個開始我們就要更新答案

因為第二個的最後乙個一定比第乙個放的靠後

那我們就拿出乙個預設放到最後,則前邊就是乙個長度為(前面已有長度+現在新到的物品的數量-1)的數列

但由於前面是已經排好的,順序不用動,而新放進來的有相同,所以我們實際上就是在這個長度的序列中任選兩個位置把這些塞進去即可

那這就是組合數的問題了(不要像我一樣一開始先全排列後去重,那樣麻煩的要死!!)

#include#include

#define p 998244353

#define rii register int i

#define rij register int j

using

namespace

std;

long

long n,ans,zs,ny[500005

],sl;

void

qny()

}long

long zhsx(int m,int

n)

for(rii=m;i>=m-n+1;i--)

return

ltt;

}int

main()

ans*=zhsx(zs+sl-1,sl-1

); ans%=p;

zs+=sl;

}cout

<}

強迫症的序列

小a是乙個中度強迫症患者,每次做陣列有關的題目都異常難受,他十分希望陣列的每乙個元素都一樣大,這樣子看起來才是最棒的,所以他決定通過一些操作把這個變成乙個看起來不難受的陣列,但他又想不要和之前的那個陣列偏差那麼大,所以他每次操作只給這個陣列的其中n 1個元素加1,但是小a並不能很好的算出最優的解決方...

JZOJ4786 小a的強迫症

很明顯的,我們可以按順序放珠子。先放1號。怎麼放都只有一種。然後放2號 有1號個數 1個空,放2號個數 1個珠子 最後乙個必須放在最後 可以有空位 顯然後面的是類似的。設前面有nu m 個珠子,當前有 p 個 然後就相當於在p 2個空中放隔板,簡單套一下組合公式就好 但是隔板可以不插在珠子中?就是有...

強迫症的自我恢復

怎樣克服強迫症?這是很多的人比較關注的乙個問題。強迫症給人們的工作和生活帶來很嚴重的影響,如果不及時進行 對人的健康損害是很大的。那麼怎樣克服強迫症呢?下面就介紹一些怎樣克服強迫症的除錯方法,希望能幫助到更多的患者朋友。1 了解 和發病機制 強迫症與一定的人格特徵有密切關係。具有強迫症的人,在性格上...