【洛谷有题】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. 鸿蒙WebSocket的使用竟如此简单

    使用WebSocket建立服务器与客户端的双向连接,需要先通过createWebSocket()方法创建WebSocket对象,然后通过connect()方法连接到服务器.当连接成功后,客户端会收到o ...

  2. VirtualBox磁盘扩容

    前言 虚拟机开始时设置的磁盘空间比较小,后面使用就不够了. # 查询磁盘使用情况 df -h 虚拟硬盘扩容 关闭正在运行的虚拟机 选中工具栏 选择虚拟硬盘,并选中需要扩容的磁盘 拖动进度条,设置想要扩 ...

  3. Go语言之sync包 WaitGroup的使用

    WaitGroup 是什么以及它能为我们解决什么问题? WaitGroup在go语言中,用于线程同步,单从字面意思理解,wait等待的意思,group组.团队的意思,WaitGroup就是指等待一组, ...

  4. php 配置Gmail 发送邮件 PHPMailer

    hotmail 获取邮箱授权码 准备 首先你应该登陆https://mail.google.com地址,注册一个Gmail邮箱,然后设置开启IMAP访问 打开设置,开启IMAP访问 获取应用专用密码 ...

  5. 关于Linux的core dump

      core dump简介 core dump就是在进程crash时把包括内存在内的现场保留下来,以备故障分析. 但有时候,进程crash了却没有输出core,因为有一些因素会影响输出还是不输出cor ...

  6. 【python日期和时间处理】time模块基本使用

    1. time模块中三种时间格式 时间戳 time模块获取各种精度的时间戳 import time timestamp = time.time() timestamp_s = int(time.tim ...

  7. Warning MVC1000

    场景重现 视图文件中有些代码如下: @Html.Partial("_Footer") 会出现警告: // 警告 MVC1000 Use of IHtmlHelper.Partial ...

  8. Web前端入门第 23 问:CSS 选择器的优先级

    任何地方都存在阶级,CSS 选择器也不例外,也会讲一个三六九等. 选择器类别 通配符选择器 标签选择器 类选择器 ID选择器 属性选择器 伪类选择器 伪元素选择器 关系选择器 流传已久的阶级划分 选择 ...

  9. Web前端入门第 24 问:CSS 单位

    单位就是那个形容长度大小的东西.比如身高180cm(厘米),cm就是单位. css 也不例外,要描述一个盒子的大小,就必须要用到单位. css 单位根据其作用分为几大类:绝对单位.相对单位.视口单位. ...

  10. 字符串处理,push pop路径,组合命令,for

    字符串处理字符串截取.命令嵌套命令格式:%变量名:~ m,n%,其中,m表示开始位置(默认开头),n表示从m位置开始向后截取的字符个数(默认到结尾),若n为负数则表示向前截取个数,作用:将命令中的某段 ...