云计算百科
云计算领域专业知识百科平台

GESP八级c++复习资料(一定要保存、收藏!!!)

GESP8级主要考察点分为五个部分:倍增、最短路、最小生成树、数论和组合数学。

数论与组合数学

计数原理

加法计数原理

完成一件事,有

n

n

n 类办法,每类办法 互相独立。

  • 第一类有

    m

    1

    m_1

    m1 种方法;

  • 第二类有

    m

    2

    m_2

    m2 种方法;

  • 第三类有

    m

    3

    m_3

    m3 种方法;

  • ……
  • n

    n

    n 类有

    m

    n

    m_n

    mn 种方法。

即总方法数是

m

1

+

m

2

+

m

3

+

+

m

n

m_1 + m_2 + m_3 + \\cdots + m_n

m1+m2+m3++mn。 关键词:分类、任选其一、互不干扰。

乘法计数原理

完成一件事,需要分成

n

n

n 个步骤,步骤之间 有先后顺序。

  • 第一步有

    m

    1

    m_1

    m1 种方法;

  • 第二步有

    m

    2

    m_2

    m2 种方法;

  • 第三步有

    m

    3

    m_3

    m3 种方法;

  • ……
  • n

    n

    n 步有

    m

    n

    m_n

    mn 种方法。

即总方法数是

m

1

×

m

2

×

m

3

×

×

m

n

m_1 \\times m_2 \\times m_3 \\times \\cdots \\times m_n

m1×m2×m3××mn。 关键词:分步、缺一不可、先后顺序。

区分方法

能 一步 做完 → 分类 → 加法 → “或”。 必须 多步 做完 → 分步 → 乘法 → “且”、“先……再……” 。

阶乘

n

!

=

i

=

1

n

i

=

n

×

(

n

1

)

×

(

n

2

)

×

×

2

×

1

n! = \\prod_{i=1}^{n}i = n \\times (n-1) \\times (n-2) \\times \\cdots \\times 2 \\times 1

n!=i=1ni=n×(n1)×(n2)××2×1,注意

0

!

=

1

0! = 1

0!=1

排列

n

n

n 个不同元素中,有序 取出

m

m

m 个排成一列,叫排列,通常记作

A

n

m

A_n^m

Anm

P

n

m

P_n^m

Pnm

A

n

m

=

n

!

(

n

m

)

!

=

i

=

n

m

+

1

n

i

A_n^m = \\frac{n!}{(n-m)!} = \\prod_{i=n-m+1}^{n}i

Anm=(nm)!n!=i=nm+1ni

全排列:

A

n

n

=

n

!

A_n^n = n!

Ann=n!

组合

n

n

n 个不同元素中,无序 取出

m

m

m 个组成一组,叫组合,通常记作

C

n

m

C_n^m

Cnm

(

n

m

)

\\binom{n}{m}

(mn)

C

n

m

=

A

n

m

m

!

=

n

!

m

!

(

n

m

)

!

C_n^m = \\frac{A_n^m}{m!} = \\frac{n!}{m!(n-m)!}

Cnm=m!Anm=m!(nm)!n!。 性质:

  • C

    n

    m

    =

    C

    n

    n

    m

    C_n^m = C_n^{n-m}

    Cnm=Cnnm(对称性);

  • C

    n

    0

    =

    C

    n

    n

    =

    1

    C_n^0 = C_n^n = 1

    Cn0=Cnn=1

  • C

    n

    m

    +

    C

    n

    m

    +

    1

    =

    C

    n

    +

    1

    m

    +

    1

    C_n^m + C_n^{m+1} = C_{n+1}^{m+1}

    Cnm+Cnm+1=Cn+1m+1(杨辉三角);

  • i

    =

    0

    n

    C

    n

    i

    =

    2

    n

    \\sum_{i=0}^n C_n^i = 2^n

    i=0nCni=2n

鸽巢原理(抽屉原理)

基本形式

n

+

1

n+1

n+1 个物体放入

n

n

n 个抽屉中,则 至少有一个抽屉 里包含 至少两个 物体。

推广形式

k

m

+

1

km+1

km+1 个物体放入

k

k

k 个抽屉中,则至少有一个抽屉里包含至少

m

+

1

m+1

m+1 个物体。

典型应用

  • 任意

    13

    13

    13 个人中,至少有

    2

    2

    2 个人的生日在同一个月;

  • 任意

    5

    5

    5 个整数中,至少有

    3

    3

    3 个整数的和是

    3

    3

    3 的倍数。

卡特兰数

定义

n

n

n 个卡特兰数记作

C

a

t

a

l

a

n

(

n

)

Catalan(n)

Catalan(n),公式为:

C

a

t

a

l

a

n

(

n

)

=

1

n

+

1

C

2

n

n

=

(

2

n

)

!

(

n

+

1

)

!

n

!

Catalan(n) = \\frac{1}{n+1}C_{2n}^n = \\frac{(2n)!}{(n+1)!n!}

Catalan(n)=n+11C2nn=(n+1)!n!(2n)!

初始值

C

a

t

a

l

a

n

(

0

)

=

1

Catalan(0) = 1

Catalan(0)=1

C

a

t

a

l

a

n

(

1

)

=

1

Catalan(1) = 1

Catalan(1)=1

C

a

t

a

l

a

n

(

2

)

=

2

Catalan(2) = 2

Catalan(2)=2

C

a

t

a

l

a

n

(

3

)

=

5

Catalan(3) = 5

Catalan(3)=5

C

a

t

a

l

a

n

(

4

)

=

14

Catalan(4) = 14

Catalan(4)=14

典型应用场景

  • 合法括号匹配的数量:

    n

    n

    n 对括号的合法组合数为

    C

    a

    t

    a

    l

    a

    n

    (

    n

    )

    Catalan(n)

    Catalan(n)

  • 出栈序列的数量:

    n

    n

    n 个元素进栈后,合法出栈序列数为

    C

    a

    t

    a

    l

    a

    n

    (

    n

    )

    Catalan(n)

    Catalan(n)

  • 凸多边形三角剖分:

    n

    n

    n 边形的三角剖分方案数为

    C

    a

    t

    a

    l

    a

    n

    (

    n

    2

    )

    Catalan(n-2)

    Catalan(n2)

整除

点击查看,博主原创

赞(0)
未经允许不得转载:网硕互联帮助中心 » GESP八级c++复习资料(一定要保存、收藏!!!)
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!