CSP初赛复习
初赛复习
初赛一定要过啊,否则付出的那么多都白搭了!
while(1)
++csp.rp,++csp.luck,++csp.scores;
历史
2020年开始,除NOIP以外的NOI系列其他赛事(包括冬令营、CTSC、APIO、NOI)将不再支持Pascal语言和C语言。从2022年开始,NOIP竞赛也将不再支持Pascal语言。
图灵奖 (A.M. Turing Award) 由ACM于1966年设立 ,“计算机界的诺贝尔奖”
奖励那些对计算机事业做出重要贡献的个人约翰•冯•诺依曼奖 由IEEE(电气和电子工程师协会)于1990年成立
表扬在计算机科学和技术上具有杰出成就的科学家高德纳奖 (Donald E. Knuth Prize) 始于1996 1.5年颁发一次
授予为计算机科学基础做出杰出贡献的人王选奖 CCF
授予在计算机科学技术前沿取得重要突破,研究成果通过转化和产业化,创造显著经济或社会效益的科技工作者第一台计算机
ENIAC
(ENIAC
是继ABC(阿塔纳索夫-贝瑞计算机)之后的第二台电子计算机和第一台通用计算机)第一台具有存储程序功能的计算机
EDVAC
(离散变量自动电子计算机)NOI 1984年 NOIP 1995年 冬令营 1995年 APIO 2007年
计算机原理结构
首位0、1分别表示正、负,正数的反码是它本身,负数的反码是它原码除符号位外按位取反;正数的补码是它本身,负数的补码是它的反码+1
CPU(中央处理器)=运算器+控制器+寄存器(速度最快)
BIOS是英文"Basic Input Output System"的缩略语,直译过来后中文名称就是"基本输入输出系统"。其实,它是一组固化到计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、系统设置信息、开机后自检程序和系统自启动程序。 其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。
ROM只读存储器;RAM随机存储器(约为内存)
cache是高速缓冲存储器,快于RAM (速度:寄存器>cache>RAM>ROM)
随机存储器RAM的“随机”指“随时访问”
断电后可以保存数据:硬盘,ROM;断电后不可以保存数据:显存(显卡内存),RAM,CPU
电子管-晶体管-中小规模集成-大超大规模集成
LAN 局域网;MAN 城域网;WAN 广域网
IMAP、POP3、SMTP 电子邮件
TCP/IP 链路层-网络层-传输层-应用层
GSM全球移动通信系统;GPRS通用分组无线服务技术;
OSI七层模型1-7(低到高)
1.物理层 2.数据链路层:ppp点对点协议 CSMA/CD 3.网络层:IP协议,地址解析协议ARP,网际控制报文协议ICMP,路由选择协议,RIP 4.运输层:用户数据报协议UDP,传输控制协议TCP 5.会话层 6表示层 7.应用层:文件传输协议FTP,HTTP,SMTP
1TB=1024GB,1GB=1024MB,1MB=1024KB,1KB=1024B,**1B(字节)=8bit(位), 1 个像素=2B,\(1GB=2^{10+10+10}=2^{30}\)
算法
O(1),O(N),O(NlogN),O(n2)等n不在指数为的复杂度为多项式级复杂度,O(N!),O(2n)等复杂度是非多项式级的,可以找到一个多项式级复杂度算法的问题是P问题;一个解可以用多项式级复杂度检验的问题是NP问题
逻辑运算律(同集合运算律):\((A\and C)\or (B\and C)=C\and (A\and B)\)
位运算优先级:
& ^ |
指针最优,单目运算优于双目运算(如正负号),先算术运算,后移位运算,最后位运算。请特别注意:1 << 3 + 2 & 7等价于 (1 << (3 + 2))&7.逻辑运算最后结合。
一个问题满足以下两条,它就是NPC问题:1、它是NP问题,2、所有的NP问题都可以约化到它
主定理复习:若存在\(k\ge0\),有\(f(n)=\Theta(n^{log_ba}log_2^kn)\),则\(T(n)=\Theta(n^{log_ba}log_2^{k+1}n)\)
如果操作符在操作数前面,则称为前缀表达式,从后往前用栈阅读
十转二:整数部分:不断除以2,直到商为0,倒取各阶段余数;
小数部分:不断乘以2,直到积为1,正取各阶段整数
如10.25转化为二进制
10÷2=5……0
5÷2=2……1
2÷2=1……0
1÷2=0……1
倒着取余数,1010即为整数部分
0.25*2=0.5……0
0.5*2=1……1
正着取整数,0.01即为小数部分
将两部分合起来,得到10.25=(1010.01)2
十转八:计算小数部分时,小数部分每次乘八提取整数,正取各整数
char: 1字节(8位)
int: 4字节 (32位,取值范围 \(-2^31 ~ 2^31-1\))
unsigned int : 4字节 (32位,取值范围$ 0 ~ 2^{32}-1$)
long: 4字节 (32位,取值范围 \(-2^{31} ~ 2^{31}-1\))
unsigned long : 4字节 (32位,取值范围 \(0 ~ 2^{32}-1\))
long long : 8字节(64位,取值范围 \(-2^{63} ~ 2^{63}-1\))点双连通:某个没有割点的无向图
边双连通:某个没有割边(桥)的无向图
双连通分量:图的极大双连通子图(分为点双连通分量和边双联通分量)
哈夫曼树的叶子节点个数比非叶子节点个数多一。
先序遍历:根-左-右
欧拉图:可以一笔画出来的
一个图是欧拉图的充要条件(无向图):度为奇数点的点的个数<=2
有向连通图 D 是欧拉图,当且仅当该图为连通图且 D 中每个结点的入度=出度
欧拉环游:通过图中每边恰好一次的闭路径
欧拉闭迹:通过图中每边恰好一次的路径
排序方法 时间复杂度 空间复杂度 稳定性 快速排序 一般\(O(nlogn)\),最坏情况下\(O(n^2)\) \(O(logn)\) 不稳定 shell 排序(希尔排序) \(O(n^2)\) \(O(1)\) 不稳定 堆排序 \(O(nlogn)\) \(O(1)\)(直接在原序列上建立堆) 不稳定 选择排序 \(O(n2)\) \(O(n)\) 不稳定 归并排序 \(O(nlogn)\) \(O(n)\) 稳定 基数排序 \(O(n)\) \(O(n)\) 稳定 插入排序 \(O(n^2)\) \(O(n)\) 稳定 冒泡排序 \(O(n^2)\) \(O(1)\) 稳定
数学
排列组合
\(P_n^k\)从\(n\)中选\(k\)个有多少种排列,\(P_n^k=n\times(n-1)\times\dots\times(n-k+1)=\frac{n!}{(n-k)!}\)
\(C_n^k\)从\(n\)中选\(k\)个有多少种组合,\(C_n^k=\frac{P_n^k}{k!}=\frac{n!}{(n-k)!k!}\)
捆绑插空分组法
例1 由数字1、2、3、4、5、6、7组成无重复数字的七位数。
(1)求三个偶数必相邻的七位数的个数;(2)求三个偶数互不相邻的七位数的个数。
解 (1):因为三个偶数2、4、6必须相邻,所以要得到一个符合条件的七位数可以分为如下三步:第一步将1、3、5、7四个数字排好有P(4,4)种不同的排法;第二步将2、4、6三个数字“捆绑”在一起有P(3,3) 种不同的“捆绑”方法; 第三步将第二步“捆绑”的这个整体“插入”到第一步所排的四个不同数字的五个“间隙”(包括两端的两个位置)中的其中一个位置上,有P(1,5)种不同的“插入”方法。根据乘法原理共有\(P(4,4)\times P(3,3)\times P(5,1)\)=720种不同的排法。所以共有720个符合条件的七位数。
解(2):因为三个偶数2、4、6 互不相邻,所以要得到符合条件的七位数可以分为如下两步:第一步将1、3、5、7四个数字排好,有P(4,4) 种不同的排法;第二步将2、4、6分别“插入”到第一步排的四个数字的五个“间隙”(包括两端的两个位置)中的三个位置上,有P(3,5) 种“插入”方法。根据乘法原理共有\(P(4,4)\times P(3,5)=1440\)种不同的排法。所以共有1440个符合条件的七位数。
例2 将A、B、C、D、E、F分成三组,共有多少种不同的分法?
解:要将A、B、C、D、E、F分成三组,可以分为三类办法:(1-1-4)分法、(1-2-3)分法、(2-2-2)分法。下面分别计算每一类的方法数:
第一类(1-1-4)分法,这是一类整体不等分局部等分的问题,可以采用两种解法。解法一:从六个元素中取出四个不同的元素构成一个组,余下的两个元素各作为一个组,有C(4,6)种不同的分法。解法二:从六个元素中先取出一个元素作为一个组有C(1,6) 种选法,再从余下的五个元素中取出一个元素作为一个组有C(1,5) 种选法,最后余下的四个元素自然作为一个组,由于第一步和第二步各选取出一个元素分别作为一个组有先后之分,产生了重复计算,应除以P(2,2)。所以共有\(C(1,6)*C(1,5)/P(2,2) =15\)种不同的分组方法。
第二类(1-2-3)分法,这是一类整体和局部均不等分的问题,首先从六个不同的元素中选取出一个元素作为一个组有C(1,6) 种不同的选法,再从余下的五个不同元素中选取出两个不同的元素作为一个组有C(2,5) 种不同的选法,余下的最后三个元素自然作为一个组,根据乘法原理共有\(C(1,6)*C(2,5)=60\)种不同的分组方法。
第三类(2-2-2)分法,这是一类整体“等分”的问题,首先从六个不同元素中选取出两个不同元素作为一个组有C(2,6) 种不同的取法,再从余下的四个元素中取出两个不同的元素作为一个组有C(2,4)种不同的取法,最后余下的两个元素自然作为一个组。由于三组等分存在先后选取的不同的顺序,所以应除以P(3,3) ,因此共有\(C(2,6)*C(2,4)/P(3,3) =15\)种不同的分组方法。
根据加法原理,将A、B、C、D、E、F六个元素分成三组共有:15+60+15=90种不同的方法。
小结:
- m个不同的元素必须相邻,有P(m,m) 种“捆绑”方法。
- m个不同元素互不相邻,分别“插入”到n个“间隙”中的m个位置有 P(m,n)种不同的“插入”方法。
- m个相同的元素互不相邻,分别“插入”到n个“间隙”中的m个位置,有C(m,n)种不同的“插入”方法
- 若干个不同的元素“等分”为 m个组,要将选取出每一个组的组合数的乘积除以P(m,m)。
Catalan数
(\(1,1,2,5,14,42,132\))
通项公式:\(H(n)=\frac{C_n^{2n}}{n+1}\)
递推公式:\(H(n)=H(n-1)\times \frac{4n-2}{(n+1)}\)
意义:
- \(n\) 个结点可够造多少个不同的二叉树
- \(n\)个不同的数依次进栈,求不同的出栈结果的种数
- 对角线不相交的情况下,将一个凸多边形区域分成三角形区域的方法数
- 在圆上选择\(2n\)个点,将这些点成对连接起来使得所得到的\(n\)条线段不相交的方法数
容斥定理
被覆盖奇数次的加,偶数次的减
题
2017年10月1日是星期日,1949年10月1日是( )。
其实我们只关心1949-10-1到2017-10-1在过了多少个一周后又零几天
一年有52周=52*7=364天,所以每过一个平年我们过了52周零1天,每过一个闰年我们过了52周零2天
而中间有(2017-1949)/4=17 个闰年
所以我们除了n个整周外零了(2017-1949)+17=85 天=12周…….1天
多过了1天使周日,所以1949-10-1是周六
将7个名额分给4个不同的班级,允许有的班级没有名额,有( )种不同的分配方案。
因为允许为空,所以我们每组都填上1,然后此时我们可以看作是你面前有7+4=11个球,10个空隙,你需要在十个空隙插入三个板子,把十一个球分成四份,要求每个空隙只能有一个板子,且四组都得有一个球,所以就是 \(C(10, 3) = 120\)种
由四个不同的点构成的简单无向连通图的个数是( )
四个点构成连通图最少选3条边(树),最多选\(\frac{4\times3}{2}\)条边(完全图),一共\(\frac{4\times3}{2}\)条边中选择,但注意,不是所有的任选3条边都满足条件,有一种情况是三个点形成一个三角形而孤立一个点,这种情况共有4种,所以\(ans=C(6, 6)+C(6,5)+C(6,4)+C(6,3)-4=38\)
某计算机的 CPU 和内存之间的地址总线宽度是 32 位(bit),这台计算机最多可以使用( )GB的内存。
最多使用\(2^{32}\)字节(B)
有 7 个一模一样的苹果,放到 3 个一样的盘子中,一共有( )种放法
枚举即可,注意用计排序,算组合即可
有数字1,1,2,4,8,8所组成的不同的四位数的个数
显然 1 开头和 8 开头的方案数相等,2 开头和 4 开头的方案数相同,然后我们可以通过手玩爆枚出 1 开头与 2 开头的方案数,分别为 33 与 18,加起来乘二等于 102
哪个逻辑表达式的值与变量 B 的真假无关?
A. (
CSP初赛复习的更多相关文章
- CSP 初赛复习 密码
CSP 初赛复习 密码是\(xj\)机房学生端密码
- PJ初赛复习日记
PA姑娘的PJ初赛复习日记 by Pleiades_Antares PJ初赛考试马上就要开始了(今年应该是10.13吧?),作为蒟蒻的我们怎么能不复习呢? 众所周知,复习方法有很多很多种-- 比如 ( ...
- CSP考前复习
前言 因为loceaner太菜了,他什么东西都不会 所以他打算学一个东西就记录一下 不过因为他很菜,所以他不会写原理-- 而且,他希望在2019CSP之前不会断更 就酱紫,就是写给他自己的--因为他太 ...
- noip初赛复习总纲
初赛复习总纲 目录 初赛复习总纲 计算机发展史 计算机的分类 计算机的应用 操作系统盘点 计算机的基本结构 中央处理器(**CPU**--**Central Processing Unit**) 存储 ...
- 2019.10.15 CSP初赛知识点整理
初赛需要的知识点整理如下: (1)计算机的硬件组成与基本常识 (2)单位/进制的转换 (3)进制/逻辑运算相关 (4)概率与期望 (5)排序的各种性质 (6)简单数据结构的使用(栈.队列.链表等) ( ...
- CSP初赛考点汇总
qwq 为SCP初赛选手(我)收集的各种定理qwq 更新: 1.为了初赛都能用,不限于定理了 2.主旨为在短时间内复习各算法,备初赛 3.请确定你学习(学懂了)了 \(\texttt{oi}\) 的基 ...
- NOIP2018TG 初赛复习
Date: 20180911 TCP/IP OSI7面向对象的程序设计语言 1.不是自顶向下2.simula 67语言 第一个3.继承性.封装性.多态性NOIP支持的语言环境:对于c / c++ :D ...
- [CSP初赛] 组合数学的三个技巧以及从另一方面思考组合类问题
也不知道老师讲不讲 话说好久没有水博客了,看了一点\(python\)然后就去搞文化课了 正好网课讲到组合数学,然后觉得还蛮难的(其实是我变菜了),就想到了以前的\(csp\)的组合数学基础 果然被我 ...
- noip 初赛复习重点知识点
一.进制转化 将k进制数转化为十进制数: 设k进制数为(abcd)k,则对应十进制数为 (小数同理,乘k的负幂次) 将十进制数转成k进制数: 设十进制数为x: t1=x/k,t2=x mod k t1 ...
随机推荐
- 基于socketserver实现并发的socket套接字编程
一.基于TCP协议 基于tcp的套接字,关键就是两个循环,一个链接循环,一个通信循环 socketserver模块中分两大类:server类(解决链接问题)和request类(解决通信问题) 1.1 ...
- 异常:[vue/no-parsing-error] Parsing error:x-invalid-end-tag
- Hibernate常用api以及增删改查
一 .API的定义 所谓的API全称就是(Application Programming Interface,应用程序编程接口).就是类库对外提供的接口.类.枚举.注解等元素. 如:JDK API ...
- 使用parted对Linux未分区部分进行分区
1. 使用命令parted -l 查看当前分区 可以看到硬盘有2396GB即有2.5T , 但是分区就分了50G一个盘, 需要分剩下部分 [root@localhost ~]# parted -l M ...
- 修改mysql远程数据库链接密码(转)
原文:https://blog.csdn.net/jianjiao7869/article/details/81029171 原来root用户有两个,一个只允许localhost登陆,一个可运行所有用 ...
- 在论坛中出现的比较难的sql问题:38(字符拆分 字符串检索问题)
原文:在论坛中出现的比较难的sql问题:38(字符拆分 字符串检索问题) 最近,在论坛中,遇到了不少比较难的sql问题,虽然自己都能解决,但发现过几天后,就记不起来了,也忘记解决的方法了. 所以,觉得 ...
- dapper 参数不定时用这种方法动态参数
string where = null; var p = new DynamicParameters(); if (classId != null) { where = " and clas ...
- NoSql 使用小结
NoSql 使用小结 足够的冗余 如果出现要拿某个 id 去查另外的 collection 的情况,说明应该往这个增加所要查询的字段 实在要做关联查询的话,是不是应该考虑关系型的数据库,关系和非关系混 ...
- lambda的一些用法
lambda在函数中调用时可以不用传入形参,当需要时才传入参数,方便一些场合中的使用(当参数一直变化时,仍然需要调用函数,可以采用如下方式).如以下代码所示. import numpy as np d ...
- CSS和LESS
1.CSS 层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言.CSS ...