csp初赛复习(往年真题+解析)

排序算法
前缀/后缀表达式
二进制补码、反码
最短路
图片/音频/视频文件格式
前序/中序/后序遍历

  • 以比较作为基本运算,在 N 个数中找最小数的最少运算次数为( )。
    A. N N N
    B. N − 1 N-1 N1
    C. N 2 N^2 N2
    D. l o g N logN logN
    正确答案: B

  • 设 A 和 B 是两个长为 n 的有序数组,现在需要将 A 和 B 合并成一个排好序的 数组,请问任何以元素比较作为基本运算的归并算法最坏情况下至少要做 ( )次比较。
    A. n 2 n^2 n2
    B. n l o g n nlogn nlogn
    C. 2 n 2n 2n
    D. 2 n − 1 2n-1 2n1
    正确答案:D

  • 某计算机的 CPU 和内存之间的地址总线宽度是 32 位(bit),这台计算机最多可以使用( )的内存。
    正确答案: 4GB
    解析:
    地址总线宽度为32位,一次可以发送的一个数据是32位的,则寻址的单元最大就是32位数据的最大值,就是2的32次方。
    2 32 B = 2 22 K B = 2 12 M B = 2 2 G B = 4 G B 2^{32}B=2^{22}KB=2^{12}MB=2^2GB=4GB 232B=222KB=212MB=22GB=4GB

  • 有 7 个一模一样的苹果,放到 3 个一样的盘子中,一共有( )种放法。
    正确答案:8

  • 将 7 个名额分给 4 个不同的班级,允许有的班级没有名额,有( )种不 同的分配方案。
    正确答案:120
    解析:
    排列组合 "N个球放入M个盒子"问题 总结
      球,盒子都可以分成不能区分和能区分,还能分成是否能有空箱子,所以一共是8种情况。
    1.球同,盒不同,无空箱
       C n − 1 m − 1 C_{n-1}^{m-1} Cn1m1,n>=m
      0,n   使用插板法:n个球中间有n-1个间隙,现在要分成m个盒子,而且不能有空箱子,所以只要在n-1个间隙选出m-1个间隙即可
    2.球同,盒不同,允许空箱
       C n + m − 1 m − 1 C_{n+m-1}^{m-1} Cn+m1m1
      我们在第1类情况下继续讨论,我们可以先假设m个盒子里都放好了1个球,所以说白了就是,现在有m+n个相同的球,要放入m个不同的箱子,没有空箱。也就是第1种情况
    3.球不同,盒相同,无空箱
      第二类斯特林数 d p [ n ] [ m ] dp[n][m] dp[n][m]
       d p [ n ] [ m ] = m × d p [ n − 1 ] [ m ] + d p [ n − 1 ] [ m − 1 ] dp[n][m]=m \times dp[n-1][m]+dp[n-1][m-1] dp[n][m]=m×dp[n1][m]+dp[n1][m1],1<=m    d p [ k ] [ k ] = 1 dp[k][k]=1 dp[k][k]=1,k>=0
       d p [ k ] [ 0 ] = 0 dp[k][0]=0 dp[k][0]=0,k>=1
      0,n   这种情况就是第二类斯特林数,我们来理解一下这个转移方程。
      对于第n个球,如果前面的n-1个球已经放在了m个箱子里,那么现在第n个球放在哪个箱子都是可以的,所以 m × d p [ n − 1 ] [ m ] m \times dp[n-1][m] m×dp[n1][m];
      如果前n-1个球已经放在了m-1个箱子里,那么现在第n个球必须要新开一个箱子来存放,所以 d p [ n − 1 ] [ m − 1 ] dp[n-1][m-1] dp[n1][m1]
      其他的都没法转移过来
    4.球不同,盒相同,允许空箱
    答案是 ∑ i = 0 m d p [ n ] [ i ] \sum_{i=0}^mdp[n][i] i=0mdp[n][i]
       d p [ n ] [ m ] dp[n][m] dp[n][m]为情况3的第二类斯特林数
      这种情况就是在第3种情况的前提下,去枚举使用的箱子的个数
    5.球不同,盒不同,无空箱
       d p [ n ] [ m ] × f a c [ m ] dp[n][m] \times fac[m] dp[n][m]×fac[m]
      dp[n][m]为情况3的第二类斯特林数,fac[m]为m的阶乘
      因为球是不同的,所以dp[n][m]得到的盒子相同的情况,只要再给盒子定义顺序,就等于现在的答案了
    6.球不同,盒不同,允许空箱
       m n m^n mn
      每个球都有m种选择,所以就等于 m n m^n mn
    7.球同,盒同,允许空箱
       d p [ n ] [ m ] = d p [ n ] [ m − 1 ] + d p [ n − m ] [ m ] dp[n][m]=dp[n][m-1]+dp[n-m][m] dp[n][m]=dp[n][m1]+dp[nm][m], n>=m
       d p [ n ] [ m ] = d p [ n ] [ m − 1 ] dp[n][m]=dp[n][m-1] dp[n][m]=dp[n][m1], n   边界 d

你可能感兴趣的:(总结,算法,动态规划,人工智能)