CSP -S1/J1 初赛复习

写在前面

本篇博客仅做初赛复习用(其实对于博主来说绝大部分是新学的)

本来是想在笔记本上划拉划拉,但是记着记着就乱了,索性打在博客里更新、整理都方便。

文件大小计算

电脑对于文件大小的计算有一些常见的单位

1B(byte,字节)= 8 bit(这里就是二进制“0”和“1”);

1KB(Kilobyte,千字节)=1024B= 2 10 2^{10} 210 B;

1MB(Megabyte,兆字节,百万字节,简称“兆”)=1024KB= 2 20 2^{20} 220 B;

1GB(Gigabyte,吉字节,十亿字节,又称“千兆”)=1024MB= 2 30 2^{30} 230 B;

1TB(Terabyte,万亿字节,太字节)=1024GB= 2 40 2^{40} 240 B;

1PB(Petabyte,千万亿字节,拍字节)=1024TB= 2 50 2^{50} 250 B;

例题:NOIP2014 TG初赛 T3 考1TB = 2 40 2^{40} 240 B

位图大小的计算

位图大小 N = 长 像 素 数 ∗ 宽 像 素 数 ∗ 位 图 位 数 8 ∗ 1024 K B N = \frac{长像素数*宽像素数*位图位数}{8*1024} KB N=81024KB

拿例题解释

NOIP2017 TG初赛
3.分辨率为 1600x900、16 位色的位图,存储图像信息所需的空间为( )。
A. 2812.5KB
B. 4218.75KB
C. 4320KB
D. 2880KB

答案是A, 1600 ∗ 900 ∗ 16 8 ∗ 1024 = 2812.5 K B \frac{1600*900*16}{8*1024}=2812.5 KB 81024160090016=2812.5KB

(尽管博主实测画图创建的如此的位图比计算的小多了)

进制转换

二进制转十进制 / K进制转十进制

和在小学中学到的十进制数每一位的定义差不多,二进制数整数部分从第一位起分别代表 2 0 2^0 20 , 2 1 2^1 21 , 2 2 2^2 22
自然地,我们可以引申出K进制数的定义:

对于任意一个数 x x x ,若能表示成
x = a n ∗ k n + ⋯ + a 1 ∗ k 1 + a 0 ∗ k 0 + a − 1 ∗ k − 1 + ⋯ + a − m ∗ k − m x = a_n*k^n + \cdots + a_1*k^1 + a_0*k^0 + a_{-1}*k^{-1} + \cdots + a_{-m}*k^{-m} x=ankn++a1k1+a0k0+a1k1++amkm
的形式,则它的K进制可表示为 ( a n a n − 1 ⋯ a 1 a 0 a − 1 ⋯ a − m + 1 a − m ) k (a_na_{n-1} \cdots a_1a_0a_{-1}\cdots a_{-m+1}a_{-m})_{k} (anan1a1a0a1am+1am)k

(貌似一进制也是可以的…)

将K进制转换为十进制,自然只需要我们按权相加就可以了。

比如 ( 1101.1 ) 2 = 1 ∗ k 3 + 1 ∗ 2 2 + 0 ∗ 2 1 + 1 ∗ 2 0 + 1 ∗ 2 − 1 = 13.5 (1101.1)_2 = 1*k^3 + 1*2^2 + 0*2^1 + 1*2^0 + 1*2^{-1} = 13.5 (1101.1)2=1k3+122+021+120+121=13.5

八进制 / 十六进制 与二进制的互相转换

八进制 / 十六进制转二进制比较特殊(此处未完待续)

时间复杂度计算

求通项公式法

例题:

NOIP2018 TG初赛 3.设某算法的时间复杂度函数的递推方程是T(n) = T(n-1) + n(n 为正整数)及T(0) = 1,则该算法的时间复杂度为( )。
A. O( log ⁡ n \log n logn)
B. O( n log ⁡ n n \log n nlogn)
C. O( n n n)
D. O( n 2 n^2 n2)

T ( n ) = T ( n − 1 ) + n T(n)=T(n-1)+n T(n)=T(n1)+n看成一个数列中, a n = a n − 1 + n a_n=a_{n-1}+n an=an1+n

那么
a 2 − a 1 = 2 a_2-a_1=2 a2a1=2
a 3 − a 2 = 3 a_3-a_2=3 a3a2=3
⋯ \cdots
a n − a n − 1 = n a_n-a_{n-1}=n anan1=n

将其全部相加,得到 a n − a 1 = 2 + 3 + ⋯ + n a_n-a_1=2+3+\cdots+n ana1=2+3++n

又知道 a 1 = 1 a_1=1 a1=1,整理一下: a n = n 2 + n 2 a_n=\frac{n^2+n}{2} an=2n2+n

发现 n n n最高次项是 2 2 2,所以是 O ( n 2 ) O(n^2) O(n2)

蒙猜法

例题:

若某算法的计算时间表示为递推关系式:
T(N) = 2T(N / 2) + N log N
T(1) = 1
则该算法的时间复杂度为( )。
A. O ( N ) O(N) O(N)
B. O ( N log ⁡ N ) O(N \log N) O(NlogN)
C. O ( N log ⁡ 2 N ) O(N \log^2 N) O(Nlog2N)
D. O ( N 2 ) O(N^2) O(N2)

这种数列不好求通项公式,我们就用蒙猜法

做过一些类似的题后,我们发现这种题一般由两项构成,一项是 ⋯ T ( ⋯   ) \cdots T(\cdots) T() (与之前的项有关),还有一项是这次新加的 ⋯ n ⋯ \cdots n \cdots n

经验:如果第一项含有 / 2 /2 /2 等结构,时间复杂度一般是取对数,即 log ⁡ N \log N logN(可以借助快速排序和其时间复杂度思考),前面只要是常数就省略不看,最后然后再乘上第二部分的结构。

注:这里的 log ⁡ \log log 一般是指 log ⁡ 2 \log_2 log2

则该算法的时间复杂度为 O ( log ⁡ N ∗ N log ⁡ N ) = O ( N log ⁡ 2 N ) O(\log N * N \log N)=O(N \log^2 N) O(logNNlogN)=O(Nlog2N)

例题2

假设某算法的计算时间表示为递推关系式 T ( n ) = 2 T ( N 4 ) + n T(n) = 2T(\frac{N}{4})+\sqrt{n} T(n)=2T(4N)+n ,求时间复杂度

按照蒙猜法,时间复杂度为 O ( n log ⁡ N ) O(\sqrt{n} \log N) O(n logN)

实在猜不出来就动笔试一下,算几个看看算了几次(博主还没试过…)

零碎知识

部分转自百度百科

CCF颂歌

NOI,全国青少年信息学奥林匹克竞赛,官网 http://www.noi.cn/。

CSP-J/S,CCF非专业级软件能力认证(Certified Software Professional Junior/Senior)
立即了解:

官网地址->全国青少年信息学奥林匹克竞赛系列活动简介

NOI始创于1984年

NOIP始创于1995年 暂停于2019年

CSP-J/S始创于2019年(这应该都知道吧)

计算机界的大腕

图灵

艾伦·麦席森·图灵(英语:Alan Mathison Turing,1912年6月23日—1954年6月7日),英国数学家、逻辑学家,被称为计算机科学之父人工智能之父。1931年图灵进入剑桥大学国王学院,毕业后到美国普林斯顿大学攻读博士学位,第二次世界大战爆发后回到剑桥,后曾协助军方破解德国的著名密码系统Enigma,帮助盟军取得了二战的胜利。

1952年,英国政府对图灵的同性恋取向定罪,随后图灵接受化学阉割(雌激素注射)。1954年6月7日,图灵吃下含有氰化物的苹果中毒身亡,享年41岁。2013年12月24日,在英国司法大臣克里斯·格雷灵的要求下,英国女王伊丽莎白二世向图灵颁发了皇家赦免。

—博主注:向这位伟大的人表示惋惜。

图灵对于人工智能的发展有诸多贡献,提出了一种用于判定机器是否具有智能的试验方法,即图灵试验,至今,每年都有试验的比赛。此外,图灵提出的著名的图灵机模型为现代计算机的逻辑工作方式奠定了基础。

图灵测试:

图灵测试(The Turing test)由艾伦·麦席森·图灵发明,指测试者与被测试者(一个人和一台机器)隔开的情况下,通过一些装置(如键盘)向被测试者随意提问。

进行多次测试后,如果机器让平均每个参与者做出超过30%的误判,那么这台机器就通过了测试,并被认为具有人类智能。图灵测试一词来源于计算机科学和密码学的先驱艾伦·麦席森·图灵写于1950年的一篇论文《计算机器与智能》,其中30%是图灵对2000年时的机器思考能力的一个预测,目前我们已远远落后于这个预测。

冯·诺依曼

冯·诺依曼(John von Neumann,1903年12月28日-1957年2月8日),美籍匈牙利数学家、计算机科学家、物理学家,是20世纪最重要的数学家之一。冯·诺依曼是布达佩斯大学数学博士,在现代计算机、博弈论、核武器和生化武器等领域内的科学全才之一,被后人称为“计算机之父”、“博弈论之父”。

简单来说他的精髓贡献是两点:2进制思想与程序内存思想。

他投身的EDVAC方案明确奠定了新机器由五个部分组成,包括:运算器、控制器、存储器、输入和输出设备,并描述了这五部分的职能和相互关系。报告中,诺伊曼对EDVAC中的两大设计思想作了进一步的论证,为计算机的设计树立了一座里程碑。

各种奖项

图灵奖

图灵奖(Turing Award),全称“A.M. 图灵奖(A.M Turing Award)”,由美国计算机协会(ACM)于1966年设立,专门奖励那些对计算机事业作出重要贡献的个人。其名称取自计算机科学的先驱、英国科学家艾伦·麦席森·图灵(Alan M. Turing)。 由于图灵奖对获奖条件要求极高,评奖程序又是极严,一般每年只奖励一名计算机科学家,只有极少数年度有两名合作者或在同一方向作出贡献的科学家共享此奖。因此它是计算机界最负盛名、最崇高的一个奖项,有“计算机界的诺贝尔奖”之称。

2019年3月27日 ——ACM宣布,深度学习的三位创造者Yoshua Bengio, Yann LeCun, 以及Geoffrey Hinton获得了2019年的图灵奖。

王选奖

中国计算机学会王选奖是中国计算机学会设立的奖项,为了纪念王选院士为中国计算机事业做出的非凡贡献,学习他严谨、务实、奉献、创新、勇于超越的科研精神。该奖授予在计算机科学技术前沿取得重要突破,研究成果通过转化和产业化,创造显著经济或社会效益的科技工作者。

中国计算机学会王选奖的前身中国计算机学会创新奖于2005年设立。2006年更名为中国计算机学会王选奖。2007年12月方正集团出资100万元人民币作为“中国计算机学会王选奖”基金。

根据中国计算机学会官网显示,中国计算机学会王选奖每年评选一次,获奖人数不超过二名,其中一名奖励学术,一名奖励技术或工程。截至2018年10月,该奖共评选了9次,共有17人获得该奖项。

编程语言相关知识

高级语言:

解释型语言:Java,Python,HTML…

编译型语言: C,C++,Pascal…

面向对象语言:C++,C#,JAVA…

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CSP-J1 知识点库是一种用于计算机科学基础知识的库,旨在帮助学生和专业人士深入了解计算机科学领域的各个方面。 在 CSP-J1 知识点库中,包含了许多重要的知识点,如编程语言、数据结构、算法、计算机网络、操作系统等。这些知识点涵盖了计算机科学的基础知识,是学习和理解计算机科学的基石。 首先,编程语言是计算机科学不可或缺的一部分。CSP-J1 知识点库中包含了各种编程语言的基本概念、语法和特性,如C、C++、Java、Python等。通过学习这些编程语言,人们可以掌握编程的基本原理和技巧,并能够进行程序开发和问题解决。 另外,数据结构和算法也是 CSP-J1 知识点库中的重要内容。数据结构是组织和管理数据的方式,而算法则是解决问题的步骤和方法。在 CSP-J1 知识点库中,人们可以学习到各种常见的数据结构和算法,如数组、链表、栈、队列、排序算法、查找算法等。熟悉这些数据结构和算法可以提高计算机程序的效率和性能,从而更好地解决实际问题。 此外,CSP-J1 知识点库还包括了计算机网络和操作系统等内容。计算机网络是指连接多台计算机和设备的网络系统,而操作系统则负责管理计算机硬件和软件资源。在 CSP-J1 知识点库中,人们可以学习到计算机网络的基本原理和协议,以及操作系统的功能和管理技术。这些知识可以帮助人们理解计算机的工作原理和网络通信的基本过程。 总之,CSP-J1 知识点库是一个集成了计算机科学基础知识的库,包含了编程语言、数据结构、算法、计算机网络、操作系统等多个方面的知识点。通过学习这些知识点,人们可以更好地理解和掌握计算机科学的原理和应用,提升自己在计算机科学领域的能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值