澳门威利斯人_威利斯人娱乐「手机版」

来自 威利斯人娱乐 2019-11-16 06:11 的文章
当前位置: 澳门威利斯人 > 威利斯人娱乐 > 正文

组合数学,城市规划

BZOJ 3456 城市规划 连忙傅里叶转换

主题材料大体:求n个点的无向简单连通图个数,n≤1.3?105
递推式:fi=2C2i?∑i?1j=1fj?Cj?1i?1?2C2i?j
演绎戳这里
接下来两侧同除(i?1)!得到:
fi(i?1)!=2C2i(i?1)!?∑i?1j=1fj?2C2i?j(j?1)!?(i?j)!

∑ij=1fj?2C2i?j(j?1)!?(i?j)!=2C2i(i?1)!

∑ij=1fj(j?1)!?2C2i?j(i?j)!=2C2i(i?1)!

那鲜明是多个卷积的款型

下一场大家令:
A=∑ni=1fi(i?1)!xi
B=∑ni=02C2ii!xi
C=∑ni=12C2i(i?1)!xi
那么有A?B=C
然后有A≡C?B?1(mod xn 1)
多项式求逆搞风姿洒脱搞就好了
没悟出还真有人的FFT比自身还慢2333

#include 
#include 
#include 
#include 
#define M 263000
#define MOD 1004535809
#define G 3
using namespace std;
int n,m;
long long Quick_Power(long long x,long long y)
{
    long long re=1;
    while(y)
    {
        if(y&1) (re*=x)%=MOD;
        (x*=x)%=MOD; y>>=1;
    }
    return re;
}
void FFT(int a[],int n,int type)
{
    static int temp[M];
    int i;
    if(n==1) return ;
    for(i=0;i>1]=a[i],temp[i n>>1]=a[i 1];
    memcpy(a,temp,sizeof(a[0])*n);
    int *l=a,*r=a (n>>1);
    FFT(l,n>>1,type);FFT(r,n>>1,type);
    long long w=Quick_Power(G,(long long)(MOD-1)/n*type%(MOD-1)),wn=1;
    for(i=0;i>1;i  ,(wn*=w)%=MOD)
        temp[i]=(l[i] wn*r[i])%MOD,temp[i (n>>1)]=(l[i]-wn*r[i]%MOD MOD)%MOD;
    memcpy(a,temp,sizeof(a[0])*n);
}
void Get_Inv(int a[],int b[],int n)
{
    static int temp[M];
    int i;
    if(n==1)
    {
        b[0]=Quick_Power(a[0],MOD-2);
        return ;
    }
    Get_Inv(a,b,n>>1);
    memcpy(temp,a,sizeof(a[0])*n);
    memset(temp n,0,sizeof(a[0])*n);
    FFT(temp,n<<1,1);
    FFT(b,n<<1,1);
    for(i=0;i<<1;i  ) cin="" i="0;i<n;i  )" int="" inv="Quick_Power(n<<1,MOD-2);" long="" static="">>n;
    for(m=1;m<=n;m<<=1);
    for(fac[0]=1,i=1;i<=n;i  )
        fac[i]=fac[i-1]*i%MOD;
    for(i=0;i<=n;i  )
        B[i]=Quick_Power(2,((long long)i*(i-1)>>1)%(MOD-1))*Quick_Power(fac[i],MOD-2)%MOD;
    for(i=1;i<=n;i  )
        C[i]=Quick_Power(2,((long long)i*(i-1)>>1)%(MOD-1))*Quick_Power(fac[i-1],MOD-2)%MOD;
    Get_Inv(B,inv_B,m);
    FFT(inv_B,m<<1,1);
    FFT(C,m<<1,1);
    for(i=0;i<<1;i  ) code="" i="1;i<=n;i  )" inv="Quick_Power(m<<1,MOD-2);" long="" return=""><<1;i  )><<1;i  )>

3456 城市规划 飞快傅里叶调换 标题大要:求 n 个点的无向轻易连通图个数, n1.3?105 递推式: fi=2C2i?i?1j=1fj?Cj?1i?1?2C2i?j 推导戳这里 然后...

【SinGuLaRiTy-1005】 Copyright (c) SinGuLaRiTy 2017. All Rights Reserved .

加法原理

设事件A有m种产生艺术,事件B有n种发生办法,则事件A或B之风流倜傥有m n种发生艺术。
会集论语言:若 |A| = m , |B| = n , A∩B =  Φ, 则 |AUB| = m n 。

<例>

(1卡塔尔某班选修公司管理的有 18 人,不选的有 10 人,则该班共有 18 10 = 贰十九个人。

(2卡塔 尔(英语:State of Qatar)新加坡每一日直达北京的地铁有 5 次,客机有 3 次, 则每一日由新加坡市高达香水之都的游历情势有 5 3 = 8 种。

乘法原理

设事件A有m种产生式,事件B有n种发生办法,则事件A与B有 m · n种产生艺术。
会集论语言:若 |A| = m , |B| = n , A*B = {(a,b) | a∈A,b ∈ B}, 则 |A * B| = m * n 。

<例>

(1卡塔 尔(阿拉伯语:قطر‎ 某种字符串由五个字符组成,第二个字符可选自{a,b,c,d,e},第1个字符可选自{1,2,3},则这种字符串共有5 * 3 = 15 个。

(2卡塔 尔(英语:State of Qatar) 从A到B有三条道路,从B到C有两条道路,则从A经B到C有3 * 2=6 条道路。

(3*卡塔 尔(英语:State of Qatar)a.求小于10000的含1的正整数的个数

分析:

小于10000的不含1的正整数可看作4位数,但0000除此而外.
故有9×9×9×9-1=6560个.
含1的有:9999-6560=3439个

         b.求小于10000的含0的正整数的个数

分析:

不含0的1位数有9个,2位数有9*9  个,3位数有9^3  个,4位数有9^4 个 
不含0小于10000的正整数有9 9^2 9^3 9^4 =73八十个
含0小于10000的正整数有9999-7380=26十九个

排列与整合

定义:从n个不相同的要素中,取r个不另行的成分,按顺序排列,称为从n个中取r个的无重排列。当r=n时称为全排列。一般不说可重即无重。可重排列的附和暗号为  P(n,r) 。

排列:从n当中取r个的排列的头名例子是从n个分歧的球中,收取r个,放入r个不相同的盒子里,每盒1个。第一个盒子有n种选取,第4个有n-1种选取,······,第r个有n-r 1种选取。故有P(n,r)=n(n-1)······(n-r 1)。

结缘:从n个中取r个的重新整合的特出例子是从n个分化的球中,收取r个,归入r个风度翩翩律的盒子里。每种盒子要放一球。每生龙活虎种组成方案都得以衍生出r!种排列方案来。C(n,r)=p(n,r)/r! 。

<组合公式的习性>

性质1:C(n,0)=C(n,n)
性质2:C(n,k)=C(n,n-k)
性质3:C(n,k) C(n,k 1)=C(n 1,k 1)

二项式定理:图片 1

<例>

1.有再度成分的全排列

有k种成分,在那之中第i种成分有ni个,全体因素生机勃勃共是n个。求全排列的个数.
解:设成分的总额为n。它同样类成分被另行总计了ni!次.所以答案为:n!/(n1!*n2!*…nk!)

2.可再度接纳的结缘

有n个不相同的因素,每种成分得以选数十次,生龙活虎共选用k个成分,有稍稍种办法?

如n=3,k=2,有6种选择:(1,1),(1,2),(1,3),(2,2),(2,3),(3,3)

分析:设第叁个因素接收x1个,第二个要素接收x2个,……,第n个要素选取xn个。则有方程:x1 x2 ……xn=k。难题调换为求方程的非负整数解的个数。令yi=xi 1,则答案为y1 y2 … yn=k n的正整数解的个数。出主意k n个大器晚成律的小球拍成1列,今后要把它分成n个部分,则只需在里面放置n-1块隔板就可以。后生可畏共有k n-1个职分用来放隔板,所以答案为C(n k-1,n-1)

集合拆分

<整数的严节拆分>

将三个整数n拆成严节的k个数的和,问有稍稍种办法?

将n个相通的球全体放入k个相符的盒子,问有稍稍种办法?
        p(n,k)=p(n-1,k-1) p(n-k,k)

本文由澳门威利斯人发布于威利斯人娱乐,转载请注明出处:组合数学,城市规划

关键词: 澳门威利斯人 数论