【洛谷有题】NOIP 2014 提高组初赛试题 订正

网络协议

第 4 题

TCP协议属于哪一层协议( ).

A. 应用层

B. 传输层

C. 网络层

D. 数据链路层

TCP/IP通讯协议采用了 4 层的层级结构,每一层都呼叫下一层所提供的网络来完成自己的需求。

  1. 应用层:应用程序间沟通的层:SMTP:简单电子邮件传输、FTP:文件传输协议、Telnet:网络远程访问协议、HTTP:超文本传输协议、XMPP:可扩展通讯和表示协议等
  2. 传输层:节点间的数据传送服务:TCP:传输控制协议、UDP:用户数据报协议等
  3. 网络层:基本的数据封包传送:如IP
  4. 网络接口层:对实际的网络媒体的管理,定义如何使用实际网络: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 提高组初赛试题 订正 网络协议 检索/比较次数计算的更多相关文章

  1. noip 2014 提高组初赛

    noip 2014 提高组初赛 一. TCP协议属于哪一层协议( ) A. 应用层 B. 传输层 C. 网络层 D. 数据链路层 B TCP(传输控制协议) 若有变量int a; float: x, ...

  2. NOIP 2018 提高组初赛试题 题目+答案+简要解析

    一.单项选择题(共 10  题,每题 2  分,共计 20  分: 每题有且仅有一个正确选项)       1. 下列四个不同进制的数中,与其它三项数值上不相等的是( ). A. (269) 16 B ...

  3. noip2018提高组初赛试题

    一.单项选择题(共 10 题,每题 2 分,共计 20 分: 每题有且仅有一个正确选项) \2. 下列属于解释执行的程序设计语言是( ). A. C B. C++ C. Pascal D. Pytho ...

  4. NOIP 2014 提高组 题解

    NOIP 2014 提高组 题解 No 1. 生活大爆炸版石头剪刀布 http://www.luogu.org/problem/show?pid=1328 这是道大水题,我都在想怎么会有人错了,没算法 ...

  5. 洛谷P1003 铺地毯 noip2011提高组day1T1

    洛谷P1003 铺地毯 noip2011提高组day1T1 洛谷原题 题目描述 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯.一共有 n ...

  6. 洛谷P1063 能量项链 [2006NOIP提高组]

    P1063 能量项链 题目描述 在Mars星球上,每个Mars人都随身佩带着一串能量项链.在项链上有N颗能量珠.能量珠是一颗有头标记与尾标 记的珠子,这些标记对应着某个正整数.并且,对于相邻的两颗珠子 ...

  7. 「洛谷P1080」「NOIP2012提高组」国王游戏 解题报告

    P1080 国王游戏 题目描述 恰逢 \(H\)国国庆,国王邀请\(n\)位大臣来玩一个有奖游戏.首先,他让每个大臣在左.右手上面分别写下一个整数,国王自己也在左.右手上各写一个整数.然后,让这 \( ...

  8. 洛谷-神奇的幻方-NOIP2015提高组复赛

    题目描述 幻方是一种很神奇的N*N矩阵:它由数字1,2,3,--,N*N构成,且每行.每列及两条对角线上的数字之和都相同. 当N为奇数时,我们可以通过以下方法构建一个幻方: 首先将1写在第一行的中间. ...

  9. 洛谷 P1525 关押罪犯 & [NOIP2010提高组](贪心,种类并查集)

    传送门 解题思路 很显然,为了让最大值最小,肯定就是从大到小枚举,让他们分在两个监狱中,第一个不符合的就是答案. 怎样判断是否在一个监狱中呢? 很显然,就是用种类并查集. 种类并查集的讲解——团伙(很 ...

  10. 洛谷 P5019 铺设道路 & [NOIP2018提高组](贪心)

    题目链接 https://www.luogu.org/problem/P5019 解题思路 一道典型的贪心题. 假设从左往右填坑,如果第i个深与第i+1个,那么第i+1个就不需要额外填: 如果第i+1 ...

随机推荐

  1. Oracle 给用户赋予dblink权限,创建dblink

    1.判断用户是否具备创建database link 的权限 一:查看当前登录用户(如果查询有返回行,则表示具备创建权限,否则,需要创建权限) 1 select * from user_sys_priv ...

  2. Fetch 别名查找

       if (PlanClass.Attributes.Contains("new_excelcolor_avg"))                                ...

  3. nodejs终端字符样式和进度条

    Nodejs为终端字符增加样式 只有黑白的色调对于比较复杂的命令行程序来说就显得太单调了,我们可以为命令行程序增加样式使得程序更加友好! 安装package: npm install -S chalk ...

  4. python环境配置命令

    在Python中,创建新的环境通常指的是创建一个隔离的Python环境,以便在该环境中安装和管理不同版本的库,而不会影响到系统中其他Python环境的库.这通常用于解决不同项目之间的依赖冲突.下面是一 ...

  5. Go工程选择开源分库分表中间件可用性测试

    近期在寻找Go工程可以用的开源分库分表中间件,找了3个:ShardingSphere-Proxy,Kingshard,Gaea,下面给出测试过程和对比结果 ShardingSphere-Proxy h ...

  6. html input 是否允许浏览器字段默认值 或者之前输入的值

    autocomplete 属性是 HTML5 中的新属性,在input中autocomplete属性是默认开启的. 1.定义:autocomplete属性规范表单是否启用自动完成功能.自动完成允许浏览 ...

  7. 使用 Podman Desktop 在 Windows 11 WSL2 环境中启动宿主机的 GPU 进行深度学习

    使用 Podman Desktop 在 Windows 11 WSL2 环境中启动宿主机的 GPU 进行深度学习 概述 本文将指导您如何利用 Podman Desktop 安装时提供的 WSL2 环境 ...

  8. 通过Linux包管理器提升权限

    免责声明:本文所涉及的技术仅供学习和参考,严禁使用本文内容从事违法行为和未授权行为,如因个人原因造成不良后果,均由使用者本人负责,作者及本博客不承担任何责任. 前言 在Linux系统中,apt和yum ...

  9. <HarmonyOS第一课02>DevEco Studio的使用

    视频链接: https://developer.huawei.com/consumer/cn/training/course/slightMooc/C101717494752698457?ha_sou ...

  10. Python 类不要再写 __init__ 方法了

    花下猫语:我们周刊第 98 期分享过一篇文章,它指出了 __init__ 方法存在的问题和新的最佳实践,第 99 期也分享了一篇文章佐证了第一篇文章的观点.我认为它们提出的是一个值得注意和思考的问题, ...