NOIp初赛题目整理
NOIp初赛题目整理
这个 blog 用来整理扶苏准备第一轮 csp 时所做的与 csp 没 有 关 系 的历年 noip-J/S 初赛题目,记录了一些我从不知道的细碎知识点,还有一些憨憨题目,不定期更新。
1、(07senior,5) 在C 语言中,表达式 \(23~\mid~2~\land^~5\) 的值是( )
A. \(23\) B.\(1\) C.\(18\) D.\(32\) E.\(24\)
Answer:A
Solution:这题一看就是要考运算符优先级来着。在 \(C\) 语言中,按位与大于按位异或大于按位或,这里的大于指优先级大于,优先级越大越优先计算,因此计算过程为 \(2~\land~5~=~7\)。然后计算 \(23~\mid~7 = 23\)。
需要指出的是,左右移的优先级大于上述三个运算,因此 \(C\) 语言表达式
1 | p << 1是先算p << 1,再对 \(1\) 取或,例如 \(1~\mid~1~<<~3\) 的答案是 \(9\)。
2、(07senior,12) 与十进制数 \(17.5625\) 对应的 \(8\) 进制数是( )。
A.\(21.5625\) B.\(21.44\) C.\(21.73\) \(D.21.731\)
Answer:B
Solution:这里介绍一下分数的进制转换。先考虑 \(10\) 进制转换成 \(k\) 进制。
首先整数部分按照整数的进制转化进行,即不断除以进制数再取余数。
然后将原数不断的去掉整数部分后乘 \(k\),第 \(i\) 次乘 \(k\) 后整数部分的值即为答案第 \(10^{-i}\) 位的值,一直做直到达到精度位数要求。
例如:\(17.5625\),整数部分被转换为 \(21\),去掉整数部分为 \(0.5625\),乘 \(8\) 得到 \(4.5\),因此十分位为 \(4\),\(4.5\) 去掉整数部分为 \(0.5\),乘 \(8\) 得到 \(4.0\),因此百分位为 \(4\)。\(4.0\) 去掉整数部分后为 \(0\),因此后面的位数都是 \(0\)。
对于 \(k\) 进制转 \(10\) 进制的情况,则整数部分依旧按照整数转换法则转换,对于小数部分,将 \(k^i\) 分位的数乘上 \(\frac{1}{k^i}\),相加即可得到 \(10\) 进制小数部分的值。
3、(07senior,14,不定项选择) 已知 \(7\) 个结点的二叉树的先根遍历是
1 2 4 5 6 3 7(数字为结点的编号,以下同),后根遍历是4 6 5 2 7 3 1,则该二叉树的可能的中根遍历是( )A.
4 2 6 5 1 7 3B.4 2 5 6 1 3 7C.4 2 3 1 5 4 7D.4 2 5 6 1 7 3Answer:A B D
Solution:二叉树遍历序什么的早都忘干净了……
众所周知,二叉树一共有三种深度优先遍历序,分别是先序遍历,中序遍历和后序遍历。这里先中后指的是记录根的时间,而左右子树的顺序总是先左子树再右子树。例如先序遍历,则先记录当前子树的根节点,然后递归对左子树做先序遍历,再递归对右子树做先序遍历;而中序遍历则先对左子树递归做中序遍历,然后记录根节点,最后对右子树递归做中序遍历。
对于一棵树,只要确定中序遍历序和另外任意一个深度优先遍历序,即可唯一确定这棵树的形态,但是只知道先序遍历和后序遍历则不能唯一确定这棵树的形态。需要指出的是,确定先序遍历和后序遍历以后,即可确定节点间的父子关系,但是无法区分左右节点。
对于本题,首先可以铁憨憨枚举四个选项,这样即可得到中序遍历和先序遍历,再验证后序遍历即可。
考虑更一般化的做法,通过已知的两个遍历序确定节点间的父子关系即可。
例如,根据先序遍历,\(2\) 一定是 \(1\) 的孩子,根据后序遍历,\(3\) 一定是 \(1\) 的孩子,因此 \(2,~3\) 一定是 \(1\) 的两个孩子,又因为 \(2\) 在先序遍历中比 \(3\) 先出现,所以 \(2\) 是左孩子,\(3\) 是右孩子。
又根据先序遍历的性质,右孩子左侧的一定都是左子树或根,因此 \(2,~4,~5,~6\) 都在根的左子树内。根据先序遍历,\(4\) 要么是 \(2\) 的孩子,要么是 \(2\) 的兄弟。但由于 \(3\) 是 \(2\) 的兄弟,所以 \(4\) 是 \(2\) 的孩子。
根据后序遍历,可以确定 \(5\) 是 \(2\) 的另一个孩子,又由于 \(4\) 在 \(5\) 之前出现,因此 \(4\) 是左孩子,\(5\) 是右孩子。
根据先序遍历,\(6\) 是 \(5\) 的孩子,但是由于 \(5\) 只有一个孩子,无法确认左右。至此,左子树的父子关系已经全部确定,类似的可以确定右子树的父子关系,然后即可确定可能的中序遍历。
今年CSP只考选择题来着,我还是选择铁憨憨枚举选项吧
4、(07senior,18,不定项选择) 在下列关于算法复杂性的说法中,正确的有( )。
A. 算法的时间复杂度,是指它在某台计算机上具体实现时的运行时间
B. 算法的时间复杂度,是指对于该算法的一种或几种主要的运算,运算的次数与问题的规模之间的函数关系
C. 一个问题如果是NPC类的,就意味着在解决该问题时,不存在一个具有多项式时间复杂度的算法.但这一点还没有得到理论上的证实,也没有被否定
D. 一个问题如果是NP类的,与C有相同的结论
Answer:BC
Solution:首先
A,B的对错显然,这边记录一下有关P问题,NP问题,NPC问题,NP-Hard问题的有关定义。对于一个问题,如果它可以使用多项式时间复杂度的算法进行求解,则它是一个 P问题(polynomial problem),这里
polynomail指的是 “多项式的”。例如,给定 \(n\) 个数对他们按照不降序进行排序,可以使用 \(O(n \log n)\) 的算法解决,因此这个问题是一个P问题。对于一个问题,如果它可以用多项式时间复杂度的算法来验证一个解的正确性,则他是一个 NP问题(Non-deterministic Polynomial Problem),这里
Non-deterministic指 “不确定的”,NP问题的中文直译为 “非确定性多项式问题”。这里不要求对原问题进行求解,只要给出原问题的一个解以后就可以用多项式的算法来验证这个解是否正确的问题,都被称为 NP 问题。例如,“对于一张 \(n\) 个点 \(m\) 条边的有向图,求它的一条回路满足经过每个节点恰好一次”这个问题(哈密尔顿回路)想要求解目前只有指数级的枚举每条边的选择情况,但是一旦我给出这个问题的一个解,我便可以使用 \(O(m)\) 的算法来轻松验证这个解是否正确,因此这个问题是一个 NP 问题。同样的,对于上面一段的排序问题,如果你给出了它的一个解,我显然可以 \(O(n)\) 去验证这个解是否正确,因此“给 \(n\) 个数进行排序” 也是一个 NP 问题。一个可以证明的事实是,一个 P 问题一定是一个 NP 问题,也即一个可以用多项式时间复杂度求解的问题一定是可以用多项式时间复杂度检验一个解的正确性。因此,P 问题集合是 NP 问题集合的子集。而 P 问题集合是否等于 NP 问题集合,就是著名的 P-NP 问题,又成为 P =? NP 问题。目前的普遍观点是不等于,但是无法给出证明。
归约:对于一个问题 \(A\),如果他能经过多项式时间复杂度的转化而转化成问题 \(B\),也即得出问题 \(B\) 的解以后可以用多项式的时间复杂度转化为问题 \(A\) 的解,则称 \(A\) 可以 归约 为 \(B\)。例如将一元一次方程加上一个系数为 \(0\) 的二次项以后可以通过求解一元二次方程的方法求解,因此说求解一元一次方程可以归约为求解一元二次方程。一个显然的事实是归约具有传递性,即若 \(A\) 可以归约为 \(B\),\(B\) 可以归约为 \(C\),则 \(A\) 可以归约为 \(C\)。显然,只要可以使用多项式复杂度解决 \(C\),即可使用多项式复杂度解决 \(A\)。
存在一个 NP 问题 \(A\),使得所有 \(NP\) 问题都可以归约为 \(A\) 问题,而 \(A\) 问题有很多个并且他们是完全等价的,所有的 \(A\) 问题被称为 NPC问题(Non-deterministic Polynomial Complete Problem)。显然只要给任意一个 NPC 问题找到一个多项式算法,即可用多项式时间复杂度解决所有 NP 问题,从而证明
P = NP,但是目前并不能在多项式时间复杂度内解决任何一个 NPC 问题。根据第一句话,我们给出 NPC 问题的定义:1、该问题是一个 NP 问题
2、任何一个 NP 问题都可以通过有限次的归约最终归约为该问题
只要满足上述两个条件的问题,都被称为 NPC 问题。第一个 NPC 问题是逻辑电路问题:给定一个有多个输入端的和多个逻辑门以及一个输出端的逻辑电路,求逻辑门的一个输入满足这个逻辑门的输出端为 true。
对于上面 NPC 问题的定义,如果一个问题满足第二条,但不一定满足第一条,则其是一个 NP-Hard问题(Non-deterministic Polynomial Hard Problem)。根据定义,NP-Hard 问题可以被任何一个 NP 问题使用多项式的时间复杂度归约到,但是自身不一定是一个 NP 问题。
因此我得出结论:NOIp的大部分题目都是 P (雾)
(07senior,21) 给定 \(n\) 个有标号的球,标号依次为1,2,…,n。将这 \(n\) 个球放入 \(r\) 个相同的盒子里,不允许
有空盒,其不同放置方法的总数记为 \(S(n,r)\),求 \(S(7,~4)\)。Answer:350
Solution:没打算做填空来着,但是看到第二类斯特灵数就记一下吧……反正我也忘了。
题面即为第二类斯特灵数的定义。当求 \(S(i, j)\) 时,假设前 \(i-1\) 个球都已经放到了盒子里,现在考虑第 \(i\) 个球:
如果前 \(i-1\) 个球放到了 \(j\) 个盒子里,那么这个球随便找个盒子放即可,方案数为 \(j \times S_{i - 1,j}\)
如果前 \(i - 1\) 个球放到了 \(j - 1\) 个盒子里,那么这个球只能自己新放一个盒子,方案数为 \(S_{i - 1, j -1}\)。
根据加法原理,\(S_{i,j} = S_{i - 1, j - 1} + j \times S_{i - 1, j}\)
(07junior,7) LAN的含义是( )
A.因特网 B.局域网 C.广域网 D.城域网
Answer:B
Solution:
休学不考 IT 会考的报应来了局域网:LAN(Local Area Network);广域网:WAN(Wide Area Network);城域网:MAN(Metropolitan Area Network)
下次还是对着英文蒙吧
NOIp初赛题目整理的更多相关文章
- Noip往年题目整理
Noip往年题目整理 张炳琪 一.历年题目 按时间倒序排序 年份 T1知识点 T2知识点 T3知识点 得分 总体 2016day1 模拟 Lca,树上差分 期望dp 144 挺难的一套题目,偏思维难度 ...
- Noip 2017 题目整理
目录 2017Noip: 小凯的疑惑 时间复杂度 逛公园 奶酪 宝藏(50fen) 列队(QAQ不会,以后再研究吧) 2017Noip: 小凯的疑惑 题目描述 小凯手中有两种面值的金币,两种面值均为正 ...
- 史上最全NOIP初赛知识点
CSP-J/S 第一轮知识点选讲 \(NOIP\)(全国青少年信息学奥林匹克竞赛)于2019年取消.取而代之的是由\(CCF\)推出的非专业级软件能力认证,也就是现在的\(CSP-J/S\).作为一名 ...
- NOIP初赛:完善程序做题技巧
最近写的文章好像还很多的.那么今天我们来讨论NOIP初赛的题型--完善程序.完善程序相对是比较难的题目了.全卷100分,完善程序占了大概26分,占比非常大.如果和英语考试试卷做比较,相当于首字母填空( ...
- NOIP初赛 之 逻辑运算
NOIP初赛 之 逻辑运算 逻辑运算先掌握各种运算,注意运算符的级别比较,做题是要细心.在NOIP中一般一题,分值为1.5分. 概念介绍: 非:not ¬ 与:and ∧ 或:o ...
- NOIP初赛知识点大全-普及+提高组
NOIP初赛知识点大全-普及+提高组 https://mp.weixin.qq.com/s/vSXLDxmbBoFfZPzD8lrt3w
- 【数学】NOIP数论内容整理
NOIP数论内容整理 注:特别感谢sdsy的zxy神仙以及lcez的tsr筮安帮助审稿 一.整除: 对于\(a,b~\in~Z\),若\(\exists~k~\in~Z\),\(s.t.~b~=~k~ ...
- NOIP初赛前一日记
2018年10月12日,早晨7:25于机房. 早晨的鄞中,晨风还有点清冷.看着电脑上翻遍的资料,心里实在是有一种说不出的感觉. 说出来也算是丢脸——作为浙江选手,我为了NOIP2018的初赛,停课了一 ...
- BZOJ 题目整理
bzoj 500题纪念 总结一发题目吧,挑几道题整理一下,(方便拖板子) 1039:每条线段与前一条线段之间的长度的比例和夹角不会因平移.旋转.放缩而改变,所以将每条轨迹改为比例和夹角的序列,复制一份 ...
随机推荐
- VUE的$refs和$el的使用
ref 被用来给元素或子组件注册引用信息 ref 有三种用法: 1.ref 加在普通的元素上,用this.$refs.(ref值) 获取到的是dom元素 2.ref 加在子组件上,用this.$ref ...
- Vue.js 源码分析(十二) 基础篇 组件详解
组件是可复用的Vue实例,一个组件本质上是一个拥有预定义选项的一个Vue实例,组件和组件之间通过一些属性进行联系. 组件有两种注册方式,分别是全局注册和局部注册,前者通过Vue.component() ...
- spring boot 在eclipse里启动正常,但打包后启动不起来
现象描述: spring boot 在eclipse里启动正常,但打包后启动不起来. 错误日志如下: D:\Project>java -jar MKKY_CMS.jar . ____ _ __ ...
- Linq与委托
using System; using System.Linq; using System.Reflection; using Stuglxt_Models; namespace ConsoleApp ...
- 关于Panel隐藏横向滚动条
不设置控件的AutoScroll属性,在后台写代码,就可以隐藏掉横向滚动条
- WPF样式与触发器(3)
WPF中的各类控件元素, 都可以自由的设置其样式. 诸如: 字体(FontFamily) 字体大小(FontSize) 背景颜色(Background) 字体颜色(Foreground) 边距(Mar ...
- web.xml——安全性框架配置文件
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://w ...
- template might not exist or might not be accessible by any of the configured Template Resolvers 完美解决
初学者在maven spring boot web项目中使用thymeleaf 模板,经常会遇到 “template might not exist or might not be accessib ...
- Flask中request与response参数
目录 request response request from flask import Flask from flask import request app = Flask(__name__) ...
- echarts 折线图百分比 tooltip 实例 两种方法
方法一 在知道有几个类型时:下面有五个类型 tooltip : { show : true, trigger: 'axis', formatter: '{b0}<br/>{a0}: {c0 ...