CSP-S 2019初赛预备

文章目录

  • 0. 前言
  • 一.选择题(虽然现在全是单选)
    • 1.送分题(也是运气题)
      • 各位大佬
      • 内存空间:
      • 进制转换
      • 各种码
      • 其他
    • 2.非送分题(猜吧)
      • 前中后缀
      • 时间复杂度计算
      • 其他
      • 猜题技巧
        • 1.找共同点
        • 2.找矛盾点
        • 3.遇到不会的题要往B, C上蒙,特别是C
        • 2.口诀
  • 二.数学题
    • 斐波那契数列
    • 杨辉三角
    • 第二类斯特林数
    • 卡特兰数
    • 盒子与球问题,经典八问
  • 三.阅读程序写结果
  • 四.补充程序(完形填空)
  • 五.总结
  • 谢谢!

0. 前言

现在这个样子可谓是初赛比复赛难,如果过不了初赛,你就瞬间成弟弟。

一.选择题(虽然现在全是单选)

1.送分题(也是运气题)

首先有五六道题是计算机的基础知识问答题,这个你了解就得分否则就猜呗。
这里有一些基础的知识:

各位大佬

名字 生卒年 国籍 信息学主要贡献 称号、身份
艾伦·麦席森·图灵 1912—1954 英 图灵机,图灵奖,图灵实验 计算机科学之父,人工智能之父
约翰·冯·诺依曼 1903-1957 美 体系构想,程序存放于内存 计算机之父、博弈论之父
克劳德·艾尔伍德·香农 1916—2001 美 提出了信息熵的概念 信息论的创始人
姚期智 1946—现在 中 通讯复杂度,伪随机数生成 2000图灵奖,奠定现代密码学
艾达·拉芙蕾丝 1815—1852 英 Ada语言(后人纪念她) 第一个程序员,计算机程序创始人

内存空间:

1024B(bit 字节)= 1KB
1024KB = 1MB
1024MB = 1GB
1024GB = 1TB

进制转换

重点掌握:
整数十进制转二进制,十进制转十六进制,十六进制转十进制
小数十进制转二进制,二进制转十进制,二进制转八进制(十六进制)

各种码

原码:若是负,第一位为1,否则为0
反码:若是正数,就是原码不变;若是负数,除了符号位,其他的数位都由0变1或由1变0
补码:若是正数,就是原码不变;若是负数,在反码的基础上加1

其他

中国计算机学会于1984年创办全国青少年计算机程序设计竞赛。
C++面对对象(在C的基础上创办而成),Python解释执行程序

2.非送分题(猜吧)

这种题有些也不难,但有些特别难,这些有些常考点:

前中后缀

中缀:a/b+c
后缀:ab/c+
前缀:+/abc

时间复杂度计算

传送门
碰到这类题,先化递推式,然后把递推式全拆开。拆的过程中要注意数与数之间的关系,得出总共能拆几层,然后写成一排,合并同类项,再找出不可忽略的项(比如最高次项)一般带log的和指数特别大的基本上都是重点 归纳表达式,填答案。

其他

还有一些特别玄学的问题这里就无法再猜了,大家靠运气吧。

猜题技巧

1.找共同点

2.找矛盾点

3.遇到不会的题要往B, C上蒙,特别是C

2.口诀

三长一短就选短,三短一长就选长,两长两短就选B,参差不齐C无敌。
以蒙为主,以抄为辅;蒙抄结合,保证及格。

二.数学题

太难了,主要需要掌握一些常用的递推式,还有现场推递推式的能力
这里有一些常见的:

斐波那契数列

f ( n ) = f ( n − 1 ) + f ( n − 2 ) f(n)=f(n-1)+f(n-2) f(n)=f(n1)+f(n2)

杨辉三角

f [ i ] [ j ] = f [ i − 1 ] [ j ] + f [ i − 1 ] [ j − 1 ] f[i][j]=f[i-1][j]+f[i-1][j-1] f[i][j]=f[i1][j]+f[i1][j1]

第二类斯特林数

S ( n , m ) = S ( n − 1 , m − 1 ) + m ∗ S ( n − 1 , m ) S(n, m)=S(n-1,m-1)+m*S(n-1,m) S(n,m)=S(n1,m1)+mS(n1,m)

卡特兰数

① f ( n ) = C 2 n n − C 2 n n − 1 ①f(n)=C^{n}_{2n}-C^{n-1}_{2n} f(n)=C2nnC2nn1
② f ( n ) = f ( n − 1 ) ∗ ( 4 ∗ n − 2 ) n + 1 ②f(n)=\frac{f(n-1)*(4*n-2)}{n+1} f(n)=n+1f(n1)(4n2)
记住常用的十一个(从第零相开始)1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796

盒子与球问题,经典八问

1.把n个不同的小球放在m不同的个盒子里,有空盒(直接 m n m^n mn
2.把n个不同的小球放在m不同的个盒子里,无空盒
3.把n个不同的小球放在m相同的个盒子里,有空盒
4.把n个不同的小球放在m相同的个盒子里,无空盒
5.把n个相同的小球放在m不同的个盒子里,有空盒
6.把n个相同的小球放在m不同的个盒子里,无空盒
7.把n个相同的小球放在m相同的个盒子里,有空盒
8.把n个相同的小球放在m相同的个盒子里,无空盒
这里主要说两个要用到排列组合的:
5: C ( n + m − 1 , m − 1 ) C(n+m-1,m-1) C(n+m1,m1)
6: C ( n − 1 , m − 1 ) C(n - 1,m - 1) C(n1,m1)
很经典的隔板法。
7和8要用递推:
7: d p [ n + m ] [ m ] = d p [ n ] [ m ] + d p [ n + m − 1 ] [ m − 1 ] dp[n+m][m]=dp[n][m]+dp[n+m-1][m - 1] dp[n+m][m]=dp[n][m]+dp[n+m1][m1]
8: d p [ n ] [ m ] = d p [ n − m ] [ m ] + d p [ n − 1 ] [ m − 1 ] dp[n][m] = dp[n-m][m]+dp[n-1][m-1] dp[n][m]=dp[nm][m]+dp[n1][m1]
2到4要用第二类斯特林,大家看着办,我觉得小概率考。
推荐博客:点击打开链接

三.阅读程序写结果

这里给几点特别重要的:
1.仔细阅读,尽量读懂程序的意图,比如找逆序对。
2.如果很蒙,就模拟程序的运行。
3.如果是图论,一定要画一张图出来帮助理解
4.最后提醒一点:仔细仔细再仔细,比如输出是”1,2,3,“,而你却输出了”1,2,3“

四.补充程序(完形填空)

既然都说了是完形填空,那么一定要联系上下语段,不要牛头不对马嘴!!!
如果第一遍读不懂一定不要慌,时间给你两个小时就是要让你把它读懂的!!!

五.总结

踏实+仔细+自信=成功

谢谢!

你可能感兴趣的:(总结)