【洛谷有题】NOIP 2014 提高组初赛试题 订正 网络协议 检索/比较次数计算
【洛谷有题】NOIP 2014 提高组初赛试题 订正
网络协议
第 4 题
TCP协议属于哪一层协议( ).
A. 应用层
B. 传输层
C. 网络层
D. 数据链路层
TCP/IP通讯协议采用了 4 层的层级结构,每一层都呼叫下一层所提供的网络来完成自己的需求。
- 应用层:应用程序间沟通的层:SMTP:简单电子邮件传输、FTP:文件传输协议、Telnet:网络远程访问协议、HTTP:超文本传输协议、XMPP:可扩展通讯和表示协议等
- 传输层:节点间的数据传送服务:TCP:传输控制协议、UDP:用户数据报协议等
- 网络层:基本的数据封包传送:如IP
- 网络接口层:对实际的网络媒体的管理,定义如何使用实际网络:Ethernet、SerialLine等
【拓展】那么数据链路层在哪里呢?
其实上面的是4层模型,而还有个5层模型,但只不过是在4层的基础上的“网络接口层”变成了“数据链路层”和“物理层”。
又其实,还有一个7层模型(OSI),又但只不过是5层的基础上的“应用层”变成了三个层:“应用层”,“会话层”和“表示层”;比如HTTP协议就包含在应用层里。
检索/比较次数计算
第 7 题
对长度位n的有序单链表,若检索每个元素的概率相等,则顺序检索到表中任一元素的平均检索长度为( ).
A. n/2
B. (n+1)/2
C. (n-1)/2
D. n/4
可以用平均数计算。如果元素刚好是第一个那就只要检索1次,若元素是最后一个那就要检索n次,平均(1+n)/2次
第 12 题
同时查找2n 个数中的最大值和最小值,最少比较次数为( ).
A. 3(n-2)/2
B. 4n-2
C. 3n-2
D. 2n-2
你也许以为最简单的是这样的:
1 int a[10010];
2 int maxn,minn;
3 int n;
4 int main()
5 {
6 cin>>n;
7 for(int i=0;i<2*n;i++) cin>>a[i];
8 maxn=minn=a[0];
9 for(int i=1;i<2*n;i++)
10 {
11 if(a[i]>maxn) maxn=a[i];
12 if(a[i]<minn) minn=a[i];
13 }
14 return 0;
15 }
比较了4n-2次,(然而本菜鸡把它算成了2n-2所以错了……2n-2突破计算机极限了?!)
或者是这样的:
int a[10010];
int maxn,minn;
int n;
int main()
{
cin>>n;
for(int i=0;i<2*n;i++) cin>>a[i];
maxn=minn=a[0];
for(int i=1;i<2*n;i++)
{
if(a[i]>maxn){
maxn=a[i];
}
else if(a[i]<minn) minn=a[i];
}
return 0;
}
平均比较1.5*2*n-2=3n-2,但是此题问的是至少比较次数,也就是最坏情况应该还是4n-2
其实是:
int a[10010];
int maxn,minn;
int n;
int main()
{
cin>>n;
for(int i=0;i<2*n;i++) cin>>a[i];
if(a[0]<a[1]){
maxn=a[1];
minn=a[0];
}
else{
maxn=a[0];
minn=a[1];
}
for(int i=2;i<2*n;i+=2)
{
if(a[i]<a[i+1])
{
if(maxn<a[i+1]) maxn=a[a+1];
if(minn>a[i]) minn=a[i];
}
else
{
if(maxn<a[i]) maxn=a[i];
if(minn>a[i+1]) minn=a[i+1]
}
}
return 0;
}
啊,真好……
首先外部比较1次。
其次,for循环会循环n-1次(注意步长为2)
每次从数组中取出两个数,先判断这两个数的大小(1次)
然后把大的与maxn比较,把小的与minn比较。(2次)
所以每次循环有三次比较,for中一共有3n-3次
再加上外面的一次,一共有3n-2次。
(以上代码未经过编译的哈,谨慎使用)
over
【洛谷有题】NOIP 2014 提高组初赛试题 订正 网络协议 检索/比较次数计算的更多相关文章
- noip 2014 提高组初赛
noip 2014 提高组初赛 一. TCP协议属于哪一层协议( ) A. 应用层 B. 传输层 C. 网络层 D. 数据链路层 B TCP(传输控制协议) 若有变量int a; float: x, ...
- NOIP 2018 提高组初赛试题 题目+答案+简要解析
一.单项选择题(共 10 题,每题 2 分,共计 20 分: 每题有且仅有一个正确选项) 1. 下列四个不同进制的数中,与其它三项数值上不相等的是( ). A. (269) 16 B ...
- noip2018提高组初赛试题
一.单项选择题(共 10 题,每题 2 分,共计 20 分: 每题有且仅有一个正确选项) \2. 下列属于解释执行的程序设计语言是( ). A. C B. C++ C. Pascal D. Pytho ...
- NOIP 2014 提高组 题解
NOIP 2014 提高组 题解 No 1. 生活大爆炸版石头剪刀布 http://www.luogu.org/problem/show?pid=1328 这是道大水题,我都在想怎么会有人错了,没算法 ...
- 洛谷P1003 铺地毯 noip2011提高组day1T1
洛谷P1003 铺地毯 noip2011提高组day1T1 洛谷原题 题目描述 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯.一共有 n ...
- 洛谷P1063 能量项链 [2006NOIP提高组]
P1063 能量项链 题目描述 在Mars星球上,每个Mars人都随身佩带着一串能量项链.在项链上有N颗能量珠.能量珠是一颗有头标记与尾标 记的珠子,这些标记对应着某个正整数.并且,对于相邻的两颗珠子 ...
- 「洛谷P1080」「NOIP2012提高组」国王游戏 解题报告
P1080 国王游戏 题目描述 恰逢 \(H\)国国庆,国王邀请\(n\)位大臣来玩一个有奖游戏.首先,他让每个大臣在左.右手上面分别写下一个整数,国王自己也在左.右手上各写一个整数.然后,让这 \( ...
- 洛谷-神奇的幻方-NOIP2015提高组复赛
题目描述 幻方是一种很神奇的N*N矩阵:它由数字1,2,3,--,N*N构成,且每行.每列及两条对角线上的数字之和都相同. 当N为奇数时,我们可以通过以下方法构建一个幻方: 首先将1写在第一行的中间. ...
- 洛谷 P1525 关押罪犯 & [NOIP2010提高组](贪心,种类并查集)
传送门 解题思路 很显然,为了让最大值最小,肯定就是从大到小枚举,让他们分在两个监狱中,第一个不符合的就是答案. 怎样判断是否在一个监狱中呢? 很显然,就是用种类并查集. 种类并查集的讲解——团伙(很 ...
- 洛谷 P5019 铺设道路 & [NOIP2018提高组](贪心)
题目链接 https://www.luogu.org/problem/P5019 解题思路 一道典型的贪心题. 假设从左往右填坑,如果第i个深与第i+1个,那么第i+1个就不需要额外填: 如果第i+1 ...
随机推荐
- Oracle 给用户赋予dblink权限,创建dblink
1.判断用户是否具备创建database link 的权限 一:查看当前登录用户(如果查询有返回行,则表示具备创建权限,否则,需要创建权限) 1 select * from user_sys_priv ...
- Fetch 别名查找
if (PlanClass.Attributes.Contains("new_excelcolor_avg")) ...
- nodejs终端字符样式和进度条
Nodejs为终端字符增加样式 只有黑白的色调对于比较复杂的命令行程序来说就显得太单调了,我们可以为命令行程序增加样式使得程序更加友好! 安装package: npm install -S chalk ...
- python环境配置命令
在Python中,创建新的环境通常指的是创建一个隔离的Python环境,以便在该环境中安装和管理不同版本的库,而不会影响到系统中其他Python环境的库.这通常用于解决不同项目之间的依赖冲突.下面是一 ...
- Go工程选择开源分库分表中间件可用性测试
近期在寻找Go工程可以用的开源分库分表中间件,找了3个:ShardingSphere-Proxy,Kingshard,Gaea,下面给出测试过程和对比结果 ShardingSphere-Proxy h ...
- html input 是否允许浏览器字段默认值 或者之前输入的值
autocomplete 属性是 HTML5 中的新属性,在input中autocomplete属性是默认开启的. 1.定义:autocomplete属性规范表单是否启用自动完成功能.自动完成允许浏览 ...
- 使用 Podman Desktop 在 Windows 11 WSL2 环境中启动宿主机的 GPU 进行深度学习
使用 Podman Desktop 在 Windows 11 WSL2 环境中启动宿主机的 GPU 进行深度学习 概述 本文将指导您如何利用 Podman Desktop 安装时提供的 WSL2 环境 ...
- 通过Linux包管理器提升权限
免责声明:本文所涉及的技术仅供学习和参考,严禁使用本文内容从事违法行为和未授权行为,如因个人原因造成不良后果,均由使用者本人负责,作者及本博客不承担任何责任. 前言 在Linux系统中,apt和yum ...
- <HarmonyOS第一课02>DevEco Studio的使用
视频链接: https://developer.huawei.com/consumer/cn/training/course/slightMooc/C101717494752698457?ha_sou ...
- Python 类不要再写 __init__ 方法了
花下猫语:我们周刊第 98 期分享过一篇文章,它指出了 __init__ 方法存在的问题和新的最佳实践,第 99 期也分享了一篇文章佐证了第一篇文章的观点.我认为它们提出的是一个值得注意和思考的问题, ...