日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[HAOI2018] 染色(二项式反演+NTT)

發布時間:2023/12/3 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [HAOI2018] 染色(二项式反演+NTT) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

洛谷鏈接

顯然顏色數量不會超過 lim?=min?(m,ns)\lim=\min(m,\frac ns)lim=min(m,sn?)

fi:f_i:fi?: 至少有 iii 種顏色恰好出現了 sss 次的方案數。

fi=(mi)?n!(s!)i(n?is)!?(m?i)n?isf_i=\binom mi·\frac{n!}{(s!)^i(n-is)!}·(m-i)^{n-is}fi?=(im?)?(s!)i(n?is)!n!??(m?i)n?is

mmm 種顏色中選 iii 種,(mi)\binom mi(im?)

nnn 個位置分成 i+1i+1i+1 個部分,欽定的 iii 種顏色每種出現 sss 次,剩下 m?im-im?i 種顏色共 n?isn-isn?is 個。

先當作是可重的全排列,即 n!s!s!...s!?i(n?is)!\frac{n!}{\underbrace{s!s!...s!}_i(n-is)!}is!s!...s!??(n?is)!n!?

iii 各部分都是只有一種顏色,后面部分每個有 m?im?im?i 種取法,所以要乘上 (m?i)n?is(m-i)^{n-is}(m?i)n?is

ansi:ans_i:ansi?: 恰有 iii 個顏色出現恰好 sss 次的方案數。

直接二項式反演:ansi=∑j=ilim?(?1)j?i(ji)fjans_i=\sum_{j=i}^{\lim}(-1)^{j-i}\binom jif_jansi?=j=ilim?(?1)j?i(ij?)fj?
ansi=∑j=ilim?(?1)j?i(ji)fj=∑j=ilim?(?1)j?1j!i!(j?i)!fj?ansi?i!=∑j=ilim?(?1)j?i(j?i)!j!?fjans_i=\sum_{j=i}^{\lim}(-1)^{j-i}\binom jif_j=\sum_{j=i}^{\lim}(-1)^{j-1}\frac{j!}{i!(j-i)!}f_j\Rightarrow ans_i·i!=\sum_{j=i}^{\lim}\frac{(-1)^{j-i}}{(j-i)!}j!·f_j ansi?=j=ilim?(?1)j?i(ij?)fj?=j=ilim?(?1)j?1i!(j?i)!j!?fj??ansi??i!=j=ilim?(j?i)!(?1)j?i?j!?fj?
Fi=i!?fi,Gi=(?1)ii!F_i=i!·f_i,G_i=\frac{(-1)^i}{i!}Fi?=i!?fi?,Gi?=i!(?1)i?,則 ansi=1i!∑j=ilim?Gj?iFj=1i!∑j=0lim??iGjFj+ians_i=\frac{1}{i!}\sum_{j=i}^{\lim} G_{j-i}F_j=\frac{1}{i!}\sum_{j=0}^{\lim-i}G_jF_{j+i}ansi?=i!1?j=ilim?Gj?i?Fj?=i!1?j=0lim?i?Gj?Fj+i?

反轉 FFF,即 Fi=(lim??i)!?flim??iF_i=(\lim-i)!·f_{\lim-i}Fi?=(lim?i)!?flim?i?,則 ansi=1i!∑j=0lim??iGjFlim??i?jans_i=\frac{1}{i!}\sum_{j=0}^{\lim-i}G_jF_{\lim-i-j}ansi?=i!1?j=0lim?i?Gj?Flim?i?j?

可以卷了 G?FG*FG?FNTT\text{NTT}NTT 做即可。

#include <bits/stdc++.h> using namespace std; #define int long long #define mod 1004535809 #define maxn 10000005 #define maxm 500000 int fac[maxn], inv[maxn], r[maxm], W[maxm], f[maxm], g[maxm]; int len;int qkpow( int x, int y ) {int ans = 1;while( y ) {if( y & 1 ) ans = ans * x % mod;x = x * x % mod;y >>= 1;}return ans; }void NTT( int *c, int op ) {for( int i = 0;i < len;i ++ ) if( i < r[i] ) swap( c[i], c[r[i]] );for( int i = 1;i < len;i <<= 1 ) {int omega = qkpow( op == 1 ? 3 : mod / 3 + 1, (mod - 1) / (i << 1) );for( int j = 0;j < len;j += (i << 1) )for( int k = 0, w = 1;k < i;k ++, w = w * omega % mod ) {int x = c[j + k], y = c[j + k + i] * w % mod;c[j + k] = ( x + y ) % mod;c[j + k + i] = ( x - y + mod ) % mod;}}if( op == -1 ) {int inv = qkpow( len, mod - 2 );for( int i = 0;i < len;i ++ ) c[i] = c[i] * inv % mod;} }void init( int n ) {fac[0] = inv[0] = 1;for( int i = 1;i <= n;i ++ ) fac[i] = fac[i - 1] * i % mod;inv[n] = qkpow( fac[n], mod - 2 );for( int i = n - 1;i;i -- ) inv[i] = inv[i + 1] * ( i + 1 ) % mod; }int C( int n, int m ) { return fac[n] * inv[m] % mod * inv[n - m] % mod; }signed main() {int n, m, s;scanf( "%lld %lld %lld", &n, &m, &s );for( int i = 0;i <= m;i ++ ) scanf( "%lld", &W[i] );init( max( n, m ) );int lim = min( m, n / s );for( int i = 0;i <= lim;i ++ ) {f[i] = fac[i] * C(m, i) % mod * fac[n] % mod * qkpow(inv[s], i) % mod * inv[n - i * s] % mod * qkpow(m - i, n - i * s) % mod;g[i] = (i & 1) ? mod - inv[i] : inv[i];}reverse( f, f + lim + 1 );int l;for( len = 1, l = 0;len <= (lim << 1);len <<= 1, l ++ );for( int i = 0;i < len;i ++ ) r[i] = (r[i >> 1] >> 1) | ((i & 1) << l - 1 );NTT( f, 1 ), NTT( g, 1 );for( int i = 0;i < len;i ++ ) f[i] = f[i] * g[i] % mod;NTT( f, -1 );int ans = 0;for( int i = 0;i <= lim;i ++ ) ( ans += W[i] * inv[i] % mod * f[lim - i] ) %= mod;printf( "%lld\n", ans );return 0; }

總結

以上是生活随笔為你收集整理的[HAOI2018] 染色(二项式反演+NTT)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 撸啊撸av | 在线天堂视频 | www三级 | 亚洲国产视频一区二区三区 | 九九在线视频 | 伊人伊人鲁 | 在线综合av | 国产综合区 | 天天躁日日躁狠狠躁av麻豆 | 黄色视屏在线 | 国产污视频在线播放 | 5月婷婷6月丁香 | 偷拍中国夫妇高潮视频 | 黄色国产大片 | 久久精品无码一区二区三区 | 国产一区二区三区色淫影院 | 国产在线免费 | 99视频免费观看 | 丰满双乳秘书被老板狂揉捏 | 先锋资源一区二区 | 9久精品 | 丁香亚洲| 91精品国产高清一区二区三蜜臀 | 99爱视频在线观看 | 五月婷婷操 | 精品国产一二 | 91尤物在线 | 国产午夜精品福利视频 | 国产色播 | 91青青草 | 97超视频| 欧美成人秋霞久久aa片 | 久一视频在线 | 一级片免费观看视频 | 国产大片中文字幕 | 欧美视频一区二区三区四区在线观看 | 久久久久久九九九九 | 成人毛片a | 91成人福利 | 亚洲美女久久 | 久久机热这里只有精品 | 欧美成人精品一区二区免费看片 | 香蕉影院在线 | 国产一二三区在线视频 | 国产麻豆成人精品av | 日日日噜噜噜 | 国产不卡一区二区视频 | 蜜臀久久99精品久久久久宅男 | 欧美少妇15p | 国产一级免费视频 | 91精品久久久久久久99蜜桃 | 亚洲国产综合在线 | 亚洲综合图 | 欧美精品久久久久性色 | 四虎4hu | 亚洲精品久久久蜜桃网尤妮丝 | 欧美日韩国产一区二区三区在线观看 | 韩国精品久久久 | 日韩视频在线观看一区二区 | 国产精品一区二区久久毛片 | 黄色在线免费观看视频 | www久久99 | 日韩精品一区二区亚洲av性色 | 国产成人一区二区三区别 | 亚洲最新网址 | 中文字幕第十二页 | 综合色区 | av天天在线 | av在线收看 | 无套内谢老熟女 | 天天燥日日燥 | 成人深夜福利 | 国产激情一区 | 播金莲一级淫片aaaaaaa | 激情五月综合色婷婷一区二区 | 岛国裸体写真hd在线 | av中文字幕免费 | 偷拍女澡堂一区二区三区 | 97免费在线观看 | 50一60岁老妇女毛片 | 在线播放色 | 欧洲性开放大片 | 日韩一级| 成人性做爰aaa片免费看不忠 | 四虎永久在线精品 | 日本在线不卡一区二区三区 | 精品久久伊人 | 激情欧美一区二区三区 | 夜夜久久| 国内精品人妻无码久久久影院蜜桃 | 日韩精品人妻一区二区三区免费 | 国产精品69久久久 | 成人做爰www看视频软件 | 免费在线观看黄色 | 久久黄色网址 | 少女情窦初开的第4集在线观看 | 国产69精品久久久久久久 | 夜夜欢天天干 | 日日干日日干 |