JXOI2018 遊戲 組合數學

2022-06-06 14:15:10 字數 864 閱讀 3513

給定乙個區間 [l,r],每次選第乙個數,把它和它後面所有它的倍數去掉,直到序列為空,操作的次數稱為這個序列的代價。求對給定序列的所有排列的代價之和。

顯然對於區間內的所有數,我們可以給出這些數的乙個拓撲圖,那麼入度為零的點的個數就是必須要選的點,其它的點在必須要選的點選完以後都不用選了,因此我們只需要考慮這些必須要選的數即可

先考慮怎樣找出這些數:類似篩質數的過程

計算過程中,我們顯然要考慮排在最右邊的必選數的位置,我們列舉這個位置 \(i\),同時設必選數的數目為 sum,考慮最後乙個必選數是哪乙個,這樣有 \(sum\) 種取法,從 \(n-sum\) 個自由數中選出 \(n-i\) 個放在後面並任意排列,剩下的與必選數混在一起排列放在前面,有 \((i-1)!\) 種排法,因此方案數為 \(sum \cdot c(n-sum, n-i) \cdot (n-i)! \cdot (i-1)!\)

#include using namespace std;

#define int long long

const int n = 1e7 + 5;

const int mod = 1e9 + 7;

int qpow(int p, int q)

int inv(int p)

int fac[n], ifac[n];

int ncr(int n, int k)

void fac_presolve()

signed main()

}int ans = 0;

int n = r - l + 1;

for (int i = sum; i <= n; i++)

cout << ans << endl;

}

jxoi2018 遊戲 組合數學

首先令 n r l 1 令 k 表示區間 l,r 中存在多少個數 x 使得 x 不存在小於 x 且在區間 l,r 中的因數,我們把包含這些數的數集稱為 s 我們來先想乙個 o nk 的 min max 容斥做法吧。顯然這一題我們可以轉化為min max容斥的模型 將這k個數選完期望需要選多少次 ma...

洛谷 JXOI2018 遊戲

初見安 這裡是傳送門 洛谷p4562 遊戲 九條可憐是乙個富有的女孩子。她長大以後創業了,開了乙個公司。但是管理公司是乙個很累人的活,員工們經常揹著可憐偷懶,可憐需要時不時對辦公室進行檢查。可憐公司有 nn 個辦公室,辦公室編號是 l到 l n 1,可憐會事先制定乙個順序,按照這個順序依次檢查辦公室...

JXOI2018簡要題解

考慮如果所有數都不同,那麼一定只有一種方案可行,需要 n 次 如果有數相同,考慮強制大小關係,最後除上每個相同數之內的排列個數 考慮如何加入新的數,明顯是越平均越好,模擬一下即可 複雜度為 o tn log n include define n 200005 define m 10000005 de...