精华内容
下载资源
问答
  • 范德蒙德卷积

    2021-10-22 09:32:56
    ∑i=0k(ni)(mk−i)=(n+mk) \sum_{i=0}^k \binom{n}{i}\dbinom{m}{k-i}=\binom{n+m}{k} i=0∑k​(in​)(k−im​)=(kn+m​) 可以理解为在大小分别为 n,mn,mn,m 的两个堆中共取 kkk 个物品,枚举在两个堆中各取了多少个...

    ∑ i = 0 k ( n i ) ( m k − i ) = ( n + m k ) \sum_{i=0}^k \binom{n}{i}\dbinom{m}{k-i}=\binom{n+m}{k} i=0k(in)(kim)=(kn+m)

    可以理解为在大小分别为 n , m n,m n,m 的两个堆中共取 k k k 个物品,枚举在两个堆中各取了多少个。

    根据 ( m i ) = ( m m − i ) \dbinom{m}{i}=\dbinom{m}{m-i} (im)=(mim) 可以得到许多推论:
    ∑ i = 1 n ( n i ) ( n i − 1 ) = ( 2 n n + 1 ) ∑ i = 0 n ( n i ) 2 = ( 2 n n ) ∑ i = 0 m ( n i ) ( m i ) = ( n + m m ) ⋯ \begin{aligned} \sum_{i=1}^n\binom{n}{i}\binom{n}{i-1}&=\binom{2n}{n+1}\\ \sum_{i=0}^n\binom{n}{i}^2&=\binom{2n}{n}\\ \sum_{i=0}^m\binom{n}{i}\binom{m}{i}&=\binom{n+m}{m}\\ &\cdots \end{aligned} i=1n(in)(i1n)i=0n(in)2i=0m(in)(im)=(n+12n)=(n2n)=(mn+m)

    展开全文
  • 范德蒙德卷积公式 ∑i=0kCniCmk−i=Cn+mk\sum_{i=0}^kC_n^iC_m^{k-i}=C_{n+m}^k∑i=0k​Cni​Cmk−i​=Cn+mk​ 我们不难看出,等号左边相当于从数量为n、m的堆中取k个元素,相等于右式 。 至于严谨的证明,可以用二...

    范德蒙德卷积公式

    ∑ i = 0 k C n i C m k − i = C n + m k \sum_{i=0}^kC_n^iC_m^{k-i}=C_{n+m}^k i=0kCniCmki=Cn+mk
    我们不难看出,等号左边相当于从数量为n、m的堆中取k个元素,相等于右式

    至于严谨的证明,可以用二项式定理证得。

    经过简单的变换,我们还可以得到一些推论
    ∑ i = 0 m C n i C m i = ∑ i = 0 m C n i C m m − i = C n + m m \sum_{i=0}^mC_n^iC_m^{i}=\sum_{i=0}^mC_n^iC_m^{m-i}=C_{n+m}^m i=0mCniCmi=i=0mCniCmmi=Cn+mm
    ∑ i = 0 m ( C m i ) 2 = ∑ i = 0 m C m i C m m − i = C 2 m m \sum_{i=0}^m(C_m^i)^2=\sum_{i=0}^mC_m^iC_m^{m-i}=C_{2m}^m i=0m(Cmi)2=i=0mCmiCmmi=C2mm

    展开全文
  • 洛谷P2791 幼儿园篮球题 范德蒙德卷积 多项式NTT 第二类斯特林数 二项式反演

    初见安~时隔良久我又回来写多项式了【靠

    还是放在题目前面吧,简单讲一下这两个东西。

    一、范德蒙德卷积

    \sum_{i=0}^kC_n^iC_{m}^{k-i}=C_{n+m}^k

    可以理解为:在两个有n个石子和m个石子的堆里面共选k个石子的方案数。这样这个等式的成立就很显然了。
    既然很显然为什么要讲?因为这个东西其实有的时候可以提醒你往这个方面去想【大雾。题中会用到

    二、二项式反演

    f_n=\sum_{i=0}^nC_n^ig_i\Leftrightarrow g_n=\sum_{i=0}^n(-1)^{n-i}C_{n}^if_i

    我们可以理解为:求n个人错排的方案数。有点麻烦,我们可以先整一个f(x)表示x个人随便排的方案数,g(x)表示x个人的错排方案数,那么就有:

    f_n=\sum_{i=0}^nC_n^ig_i

    i枚举有多少个人是错排的,其余的人都是保证呆在原地的。这显然成立。那么同时也可以有:

    g_n=\sum_{i=0}^n(-1)^{n-i}C_{n}^if_i

    这里是个容斥,容斥至少n-i个人是在原地的。

    所以就有二项式反演了。关于较详细的证明
    有二项式定理是这样的:【由杨辉三角对称性可得】

    \sum_{k=0}^n(-1)^kC_n^k=[n=0]

    【方括号的含义和if一样,满足则为1,否则为0】

    以及一个有点奇怪但很显然的扩充式子:

    g_n=\sum_{m=0}^n[n-m=0]C_n^mg_m

    于是我们可以将这里面的 [n-m=0] 与前式做个替换:

    g_n=\sum_{k=0}^n(-1)^kC_n^k\sum_{m=0}^{n-k}C_{n-k}^mg_m

    再一看:咦,这后面不就是这个嘛:

    \sum_{i=0}^{n-k}C_{n-k}^ig_i=f_{n-k}

    但是n-k看起来不舒服,所以我们替换成k,组合数里k和n-k的替换不影响,所以就有了:

    g_n=\sum_{k=0}^n(-1)^{n-k}C_{n}^kf_k

    证毕。

    三、洛谷P2791 幼儿园篮球题

    【这难道还没有个黑题的难度吗!!!超大声)】

    题解

    看起来很复杂,其实整理一下是很好理解的。S场篮球赛各自独立,也就相当于是S组数据。这里求期望我们完全可以老老实实把各种方案算出来然后除以总的情况数。也就是:【这里的k,n,m是对于该场篮球赛,意义如题】

    \sum_{i=0}^kC_m^iC_{k-m}^{m-i}*i^L/C_n^k

    哦——是不是就有点点像前面的范德蒙德卷积?那么这里的i^L就很碍眼了。有什么公式可以拿来替换呢——第二类斯特林数展开式。长这样的:【后面关于公示的化简都去掉了除以C_n^k的那个部分,懒得写】

    S(i,j)=\frac{1}{j!}\sum_{k=0}^j(-1)^{j-k}C_j^kk^i

    这里面就有一个k^i,看起来可以拿来替换。替换的方式就是简单移项然后套用我们前面的二项式反演,就可以得到:

    k^i=\sum_{j=0}^kC_k^jS(i,j)*j!

    \sum_{i=0}^kC_m^iC_{k-m}^{m-i}*i^L=\sum_{i=0}^kC_m^iC_{k-m}^{m-i}\sum_{j=0}^iC_i^jS(L,j)j!

    好像动不了了。考虑范德蒙德卷积,我们后期应该会省掉i循环,所以把j循环提前——
    这个步骤可以理解为一个对应关系,每个i都对应了所有小于等于它的j,那么相应的每个j也对应了所有大于等于它的i:

    =\sum_{j=0}^kS(L,j)j!\sum_{i=j}^kC_m^iC_{k-m}^{m-i}C_i^j

    关于S(L,j),因为第一位是全程固定了的,所以我们用NTT处理出j在L以内所有值的情况的值就可以了,展开式是可以卷的。那么问题就是后面的三个组合数。比较常见的,C_m^iC_i^j=C_m^jC_{m-j}^{i-j},前者可以理解为在m里面选i个,再在i个里面选j个,后者雷同,意义相同。这样我们就可以拆出一个与i无关的组合数。因为循环的下限有点奇怪,所以我们再变化一下,就可以直接套范德蒙德了:

    \\ =\sum_{j=0}^kS(L,j)j!C_m^j\sum_{i=j}^{k}C_{k-m}^{m-i}C_{m-j}^{i-j}\\ =\sum_{j=0}^kS(L,j)j!C_m^j\sum_{i=0}^{k-j}C_{k-m}^{m-i-j}C_{m-j}^{i}\\ =\sum_{j=0}^kS(L,j)j!C_m^jC_{k-j}^{m-j}

    好!到这里呢看起来好像这复杂度还是不可做。但是循环的上限真的是k吗?因为我们套了第二类斯特林数,所以j\leq L;因为后面有组合数,所以j\leq m。所以真正的循环上限为:min(k,m,L)。再带入一开始的总数C_n^k,把组合数拆开,预处理阶乘和逆元,这样的话整体的复杂度就是O(SL),完全可以过!!!

    最后的式子就是:

    ans=\sum_{j=0}^kS(L,j)*\frac{m!(n-j)!k!}{(m-j)!(k-j)!n!}

    你以为这样就完了吗?并不!!!因为你会发现交上去后满屏的MLE或者RE。
    因为很明显,阶乘和逆元的预处理数组必须开2e7以上,但你用了longlong你就没了。【所以这题的本质是卡内存。
    所以只能开int并且在计算过程中全部加一个1ll*,表示计算转longlong,但是最后是int存下来。

    嗯。就这样。【怕不是就我会忽略这种sb坑

    上代码——

    #include<algorithm>
    #include<iostream>
    #include<cstring>
    #include<cstdio>
    #include<cmath>
    #include<queue>
    #define maxn 600005//这里要开大点
    #define maxm 20000010
    using namespace std;
    typedef long long ll;
    const int mod = 998244353;
    int read() {
    	int x = 0, f = 1, ch = getchar();
    	while(!isdigit(ch)) {if(ch == '-') f = -1; ch = getchar();}
    	while(isdigit(ch)) x = (x << 1) + (x << 3) + ch - '0', ch = getchar();
    	return x * f;
    }
    
    int N, M, S, L;
    int fac[maxm], inv[maxm];
    ll pw(ll a, ll b) {ll res = 1; while(b) {if(b & 1) res = res * a % mod; a = a * a % mod, b >>= 1;} return res;}
    
    int len = 1, l = 0, r[maxn];
    void NTT(int *c, int flag) {
    	for(int i = 1; i <= len; i++) if(i < r[i]) swap(c[i], c[r[i]]);
    	for(int mid = 1; mid < len; mid <<= 1) {
    		ll gn = pw(3, (mod - 1) / (mid << 1));
    		if(flag == -1) gn = pw(gn, mod - 2);
    		for(int ls = 0, L = mid << 1; ls < len; ls += L) {
    			ll g = 1;
    			for(int k = 0; k < mid; k++, g = g * gn % mod) {
    				ll x = c[ls + k], y = g * c[ls + mid + k] % mod;
    				c[ls + k] = 1ll * (x + y) % mod, c[ls + mid + k] = 1ll * (x - y + mod) % mod;
    			}
    		}
    	}
    	ll rev = pw(len, mod - 2);
    	if(flag == -1) for(int i = 0; i <= len; i++) c[i] = 1ll * c[i] * rev % mod;
    }
    
    int F[maxn], G[maxn];
    int n, m, k;
    signed main() {
    	N = read(), M = read(), S = read(), L = read();
    	
    	fac[0] = inv[0] = 1; int mx = max(N, L);
    	for(int i = 1; i <= mx; i++) fac[i] = 1ll * fac[i - 1] * i % mod;
    	inv[mx] = pw(fac[mx], mod - 2);
    	for(int i = mx - 1; i > 0; i--) inv[i] = 1ll * inv[i + 1] * (i + 1) % mod;
    	
    	for(int i = 0, kd = 1; i <= L; i++, kd = -kd) G[i] = (1ll * kd * inv[i] % mod + mod) % mod;
    	for(int i = 0; i <= L; i++) F[i] = 1ll * inv[i] * pw(i, L) % mod;
    	//F和G是为了NTT第二类斯特林数的
    	while(len <= L + L) len <<= 1, l++;
    	for(int i = 1; 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] = 1ll * F[i] * G[i] % mod;
    	NTT(F, -1);
    	
    	ll ans;
    	while(S--) {
    		n = read(), m = read(), k = read(); 
    		register int lim = min(k, min(m, L)); ans = 0;
    		for(int i = 0; i <= lim; i++) //这里就看前面的公式推导即可
                        ans = (ans + F[i] * 1ll * fac[n - i] % mod * inv[m - i] % mod * inv[k - i] % mod) % mod;
    		printf("%lld\n", 1ll * ans * fac[m] % mod * fac[k] % mod * inv[n] % mod);
    	}
    	return 0;
    }

    内容有点多呀。迎评:)
    ——End——

    展开全文
  • 范德蒙德卷积 ,得到 \[ \sum_{i=b+1}^{a+b} \binom{a+b}{i} \] 然而并不会计算...根据题目范围显然应该与a,b的差相关... 参考了这里 把这个组合数拆成两部分计算: \[ \sum_{i=\lceil \frac{a+b}{2} \rceil}...

    4830: [Hnoi2017]抛硬币

    题意:A投a次硬币,B投b次硬币,a比b正面朝上次数多的方案数,模\(10^k\)

    \(b \le a \le b+10000 \le 10^{15}, k \le 9\)


    几乎一下午和一晚上杠这道题...中间各种翻《具体数学》各种卡常

    有两种做法,这里只说我认为简单的一种。

    题目就是要求
    \[ \sum_{i=0}^a \sum_{j=0}^b [i>j] \binom{a}{i} \binom{b}{j} \]
    化一化得到
    \[ \sum_{i=1}^a \sum_{j=0}^{a-i} \binom{a}{i+j} \binom{b}{b-j} \]
    根据范德蒙德卷积,得到
    \[ \sum_{i=b+1}^{a+b} \binom{a+b}{i} \]
    然而并不会计算...根据题目范围显然应该与a,b的差相关...

    参考了这里

    把这个组合数拆成两部分计算:
    \[ \sum_{i=\lceil \frac{a+b}{2} \rceil}^{a+b} \binom{a+b}{i}+ \sum_{i=b+1}^{\lfloor \frac{a+b}{2} \rfloor} \binom{a+b}{i} \]
    \(a+b\)为奇数时前一部分就是\(2^{a+b-1}\)

    注意判断\(a+b\)为偶数的时候,要减去\(\frac{1}{2} \binom{a+b}{(a+b)/2}\)

    因为模数特殊需要使用扩展lucas定理

    但是\(10^9\)直接用会T...

    10只有2和5两个质因子,预处理不能整除2或5的数的阶乘就没问题了。

    关于模意义再提两点:

    1. \(a \equiv b \pmod {md} \rightarrow a\equiv b \pmod m\),所以可以放在\(10^9\)下做
    2. 组合数除以2,对于\(2^a\)这个质因子2的逆元不存在,我们只能把指数减1.然后2的指数有可能本来就为0,所以不是所有组合数都能除以2(有的本来就是奇数啊),可以证明\(\binom{2n}{n}\)为偶数

    最后还有一个卡常技巧

    如果\(p\)指数大于9不要继续计算了...节省好多常数

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    #include <ctime>
    using namespace std;
    typedef long long ll;
    const int N=2e6+5;
    int mo, p2, p5;
    
    ll a, b; int k;
    inline ll Pow(ll a, ll b, ll mo) {
        ll ans=1;
        for(; b; b>>=1, a=a*a%mo)
            if(b&1) ans=ans*a%mo;
        return ans;
    }
    inline ll Inv(ll a, ll n) {return Pow(a, ((n&1) ? n/5*4 : n/2) - 1, n);}
    
    ll fac2[N], fac5[N];
    inline ll Fac(ll n, ll p, ll pr) {
        if(n == 0) return 1;
        ll ans = 1;
        if(p == 2) ans = fac2[pr] %pr; else ans = fac5[pr] %pr;
        ans = Pow(ans, n/pr, pr);
        if(p == 2) ans = ans * fac2[n%pr] %pr; else ans = ans * fac5[n%pr] %pr;
        return ans * Fac(n/p, p, pr) %pr;
    }
    ll cou(ll n, ll p) { ll ans = 0; for(ll i=n; i; i/=p) ans += i/p; return ans; }
    
    ll C(ll n, ll m, bool div2=0) {
        if(n < m) return 0;
    
        ll ans = 0, a = 0, t;
        {
            ll p = 2, pr = p2;
            ll c = cou(n, p) - cou(m, p) - cou(n-m, p);
            if(div2) t = Pow(p, --c, pr);
            else t = Pow(p, c, pr);
            
            if(c<9) {
                a = Fac(n, p, pr) * Inv(Fac(m, p, pr), pr) %pr * Inv(Fac(n-m, p, pr), pr) %pr * t %pr;
                a = a * (mo/pr) %mo * Inv(mo/pr, pr) %mo;
                ans = (ans + a) %mo;
            }
        }
        {
            ll p = 5, pr = p5;
            ll c = cou(n, p) - cou(m, p) - cou(n-m, p);
            t = Pow(p, c, pr);
            if(div2) t = t * Inv(2, pr) %pr;
    
            if(c<9) {
                a = Fac(n, p, pr) * Inv(Fac(m, p, pr), pr) %pr * Inv(Fac(n-m, p, pr), pr) %pr * t %pr;
                a = a * (mo/pr) %mo * Inv(mo/pr, pr) %mo;
                ans = (ans + a) %mo;
            }
        }
    
        return ans;
    }
    
    char c[50];
    void print(ll ans) {
        for(int i=0; i<20; i++) c[i] = '0';
        int p=0;
        while(ans) c[++p] = ans%10 + '0', ans /= 10;
        for(int i=k; i>=1; i--) putchar(c[i]); puts("");
    }
    
    void init(int k) {
        fac2[0] = 1; p2 = Pow(2, k, 1e9); 
        for(int i=1; i<=p2; i++) fac2[i] = fac2[i-1] * (i%2 ? i : 1) %p2;
    
        fac5[0] = 1; p5 = Pow(5, k, 1e9);
        for(int i=1; i<=p5; i++) fac5[i] = fac5[i-1] * (i%5 ? i : 1) %p5;
    }
    
    int main() {
        freopen("in", "r", stdin);
        init(9); mo = 1e9;
        while(scanf("%lld %lld %d", &a, &b, &k) != EOF) {
            ll ans = Pow(2, a+b-1, mo);
            for(ll i=b+1; i<=(a+b)/2; i++) ans = (ans + C(a+b, i)) %mo;
            if(~(a+b)&1) ans = (ans - C(a+b, (a+b)>>1, 1) + mo) %mo;
            int t = 1; for(int i=1; i<=k; i++) t *= 10; ans %= t;
            print(ans);
        }
        //printf("time %lf\n", (double) clock()/CLOCKS_PER_SEC);
    }
    
    展开全文
  • 题目 传送门 思路 代码
  • ,提出来(这个还有一个名字叫做范德蒙德卷积) \[ {n \choose k}\sum_{j=0}^{k}j^L \] 后面那个式子超级简洁,但是还是要拆成斯特林数 \[ {n \choose k}\sum_{j=0}^{k}\sum_{i=0}^{\min\{j,L\}}{L \brace i}{j \...
  • 2021牛客暑期多校训练营5 D. Double Strings 题意: ​ 两个字符串,求好的方案数,前i个字符相同(i 可以为零)第 i 个 ai < bi ,则这两个子串为好的方案数,现求方案总数。 分析: ​ 求两个子串前 i 个相同...
  • [转]卷积

    2019-06-28 15:17:41
    初学卷积的时候,往往是在连续的情形, 两个函数f(x),g(x)的卷积,是∫f(u)g(x-u)du 当然,证明卷积的一些性质并不困难,比如交换,结合等等,但是对于卷积运算的来处,初学者就不甚了了。 其实,从离散的情形看卷积,...
  • ∑j=0min(cnt,cnt2−1)​C(cnt,cnt−j)∗C(cnt2,j+1) ,那么这样是 n 2 n^2 n2的,看了题解,发现是范德蒙德卷积范德蒙德卷积定义,它是专门来处理 ∑ i = 0 i = k C ( a , i ) ∗ C ( b , k − i ) = C ( a + b ,...
  • As you probably know, Anton goes to school. One of the school subjects that Anton studies is Bracketology. On the Bracketology lessons students usually learn different sequences that consist of round ...
  • FFT求卷积(多项式乘法) 卷积 如果有两个无限序列a和b,那么它们卷积的结果是:\(y_n=\sum_{i=-\infty}^\infty a_ib_{n-i}\)。如果a和b是有限序列,a最低的项为a0,最高的项为an,b同理,我们可以把a和b超出范围的...
  • 多项式卷积 FFT 和 NTT

    2020-08-13 17:20:47
    FTT 多项式 复数 单位根 FNTT 原根
  • CF785D Anton and School - 2

    2021-09-13 16:18:38
    暑假多校的时候学到一个东西:范德蒙德卷积,我经常当做组合数的定理来记。 ∑ i = 0 k C n i C m k − i = C n + m k \sum_{i=0}^{k}C_{n}^{i}C_{m}^{k-i}=C_{n+m}^{k} i=0∑k​Cni​Cmk−i​=Cn+mk​ 严谨的证明...
  • 范德蒙德卷积实质上是对选择的对象分成两部分,最后对方案求和,一个和式是卷积的形式,只要当枚举的变量在两个端点的时候,选择的数都在同一个组合数里面。 比如当j是0的时候,后边的式子是(b,b),当j是a-i时,...
  • \sum_{k=0}^n\binom{r}{k}\binom{s}{n-k}=\binom{r+s}{n} k=0∑n​(kr​)(n−ks​)=(nr+s​) 这样我们就得到了范德蒙德卷积 ohhhhhhhhhhh 两个重要的恒等式: 1 ( 1 − x ) n + 1 = ∑ k = 0 ( n + k n ) x k \frac{...
  • 目录 信号, 集合, 多项式, 以及卷积性变换 卷积 卷积性变换 傅里叶变换与信号 引入: 信号分析 变换的基础: 复数 傅里叶变换 离散傅里叶变换 FFT 与多项式 ...
  • 5.14 在范德蒙德卷积 ∑k(rm+k)(sn−k)=(r+sm+n) , m,n是整数\sum_k \binom{r}{m+k} \binom{s}{n-k} = \binom{r+s}{m+n} \ , \ m,n 是整数∑k​(m+kr​)(n−ks​)=(m+nr+s​) , m,n是整数 中用反转上指标的方法证明...
  • 数学速记

    2018-07-30 15:17:00
    自记,略丑,勿看 (有的或许会分出去单独写一篇) 欧拉函数 $φ(i)$表示小于$i$的正整数数中与$i$互质的个数 若$p$为质数,则$φ(p)=p-1$ $\sum\limits_{d|n}φ(d)=n$(不会证) ...若$a$与$p$互质,则$$a^{φ(p)...
  • 对于二进制异或,这个矩阵可以是 [[1,1],[1,−1]][[1,1],[1,-1]][[1,1],[1,−1]],也可以是 [[1,−1],[1,1]][[1,-1],[1,1]][[1,−1],[1,1]] 原理 K进制下对应的矩阵或许有很多,但是我们可以利用范德蒙德矩阵快速...
  • 这本书的主要目的是: 说明不具备超人洞察力的人如何求解问题
  • (上面这步用到了范德蒙德卷积范德蒙德卷积: ∑ i = 0 k ( n i ) ( m k − i ) = ( n + m k ) \sum_{i=0}^{k}\dbinom{n}{i}\dbinom{m}{k-i}=\dbinom{n+m}{k} i=0∑k​(in​)(k−im​)=(kn+m​) 证明:从组合意义...
  • k)*C(y,k)=\sum\limits_{k=1}^{x}C(x,x-k)*C(y,k) k=1∑x​C(x,k)∗C(y,k)=k=1∑x​C(x,x−k)∗C(y,k),根据范德蒙德卷积公式推得原式等于 C ( x + y , x ) C(x+y,x) C(x+y,x) 如此一来,预处理出上述的 d p dp dp ...
  • 考虑以下三类卷积 \(C_k = \sum \limits_{i \;or\;j = k} A_i * B_j\) \(C_k = \sum \limits_{i\;and\;j = k} A_i * B_j\) \(C_k = \sum \limits_{i\;xor\;j = k}A_i * B_j\) 由于前两种可以用FMT(高维前缀和)解决...
  • [HNOI2017]抛硬币

    2017-12-02 14:51:00
    这个东西好像叫范德蒙德卷积.感性证明: 把2a均分为两组,那么从两组中一共取a个的方案数=分别从两组中取i个和a-i个的方案数. 现在讨论b>a的情况. 首先,a的获胜态翻转后必定是b的获胜态,但b的获胜态翻转不一定是a的...
  • 洛谷P2791 幼儿园篮球题(范德蒙德卷积,二项式反演 Codeforces 1278F Cards(Educational Codeforces Round 78 拉格朗日差值: 专题·拉格朗日差值 洛谷P5667 拉格朗日差值2 快速沃尔什变换: 专题·快速沃尔什变换...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 133
精华内容 53
关键字:

范德蒙德卷积