2009年408大题总结

news2025/7/18 8:35:38

2009年408大题

  • 第41题
  • 第42题
  • 第43题
  • 第44题
  • 第45题
  • 第46题
  • 第47题

第41题

在这里插入图片描述

这个最容易想到的方法就是举反例,但是我们可以分析一下,每一次都取最短的路径,实际上就是贪心策略的应用——每次都是最优,但是最终的结果却一般不是最优,因此很容易想到这个方法是不可行的

在这里插入图片描述
拓展:最短路径算法


第42题

在这里插入图片描述

  1. 暴力法
    策略:遍历两次,第一次遍历查看总共有n个,第二次遍历n-k+1个
    这样可以获得1/2到2/3的分数,因为你的算法不够高效,需要遍历两次
    错误方法:这里是绝对不能反过来遍历的,题目已经说明是带头结点的单链表,不改变链表结构
// 数据结构定义
typedef struct LNode {
	int data; // 数据域
	struct LNode *next;	// 指针域 ,改成 LinkList *next 也可以
} *LinkList;

// 算法实现
int Search_Node (LinkList &L, int k) {
	LinkList p = L-> next;	// 定义移动的指针
	int sum = 0;	// 链表长度
	if(L == NULL) return 0; // 链表为空
	while(p != NULL) {
		p = p -> next;	// 不断地指向下一个结点
		sum++;	// 计算链表长度
	}
	p = L -> next; // 重新回到链头
	for(int i = 0; i < sum - k + 1; i++) { // 倒数第k个就是正数n-k+1个
		p = p -> next;
	}
	return p -> data; // 返回数据域的内容
}
  1. 最优解
    个人算法实力很垃圾,所以建议考场还是暴力为主,节省时间(算法大神勿喷),除非遇到了碰巧刷过类似的算法题,所以这里给出答案看看就不浪费时间手敲了
    在这里插入图片描述

第43题

在这里插入图片描述
这类问题是比较简单的,我的一般方法就是找1s中断/DMA执行了多少个时钟周期,然后除以主频

  1. 第一小问:
    一次20条指令,则为100个时钟周期
    一次4B的数据,速度为0.5MB/s,则1s有 0.5M / 4 = 125000次
    那么1s的中断使用了100 * 125000 = 12.5M个时钟周期
    12.5M / 500M = 2.5%

  2. 第二小问:
    一次500个时钟周期
    1s有5MB/s / 5000B = 1000次
    那么1s的DMA使用了0.5M个时钟周期
    0.5M / 500M = 0.1%

第44题

在这里插入图片描述
这种题个人觉得比较难,但是可以捞分不至于全部不会,首先对于计组的第五章数据通路那一块要有“亿”点点的印象,不至于看不懂题目在问什么

ps:墙裂建议背一下一些功能操作,比如固定的取指令

  1. 指令地址给MAR
  2. 主存取内容给MDR,PC+1
  3. 指令送IR
  4. 指令译码(不一定需要写,但是感觉可以凑4的倍数,强迫症)

然后就是不固定的指令执行阶段,我个人做的时候,其实很少看他讲的一大段内容,直接看主要部分——要你干嘛

这里就是一个加法指令(看红框框的东西)
那么就需要对照这个图看,先写指令再考虑信号

  1. R1打了个(()),那就得去主存取,(R1) -> MAR,一个()就是寄存器取就行
  2. M(MAR) -> MDR,取回来的数放到MDR
  3. (MDR) -> A,给A是因为要来计算了
  4. (A) + (R0) -> AC,执行加法给AC
  5. (AC) -> MDR,要放回主存,先给MDR
  6. (MDR) -> M(MAR),放回主存

参考答案
在这里插入图片描述

拓展:CPU数据通路的知识
在这里插入图片描述


第45题

在这里插入图片描述
这个跟上面那个题的性质一样,不求全对,求多捞分!!!
首先得先判断是什么类型的同步互斥关系(咸鱼学长yyds,最前面的三篇
这里是一个吸烟者问题,很巧,咸鱼学长没讲过模板

但是可以明确,不需要用纯代码,中文描述伪代码也可——对代码小白的我十分友好
虽然但是,这个题得用题目里给的函数,变相伪代码

semaphore metux = 1 // 互斥访问缓冲区
semaphore empty = N
semaphore odd = 0
semaphore even = 0
  1. 找事做,每个人都干了啥,并且加锁(锁是加在访问缓冲区的那个操作)
p1() { //生产
	while(1) {
		produce() //生产正整数
		p(metux)
		put()	//放入缓冲区
		v(metux)
	}
}

p2() { //拿奇数
	while(1) {
		p(metux)
		getodd()	//拿奇数
		v(metux)
	}
}

p3() { //拿偶数
	while(1) {
		p(metux)
		geteven()	//拿偶数
		v(metux)
	}
}
  1. 找条件
    1. p1放入得确定缓冲区还有没有位置,所以放之前得p一下
    2. p2、p3拿之前得知道有没有,所以拿之前得p一下
p1() { //生产
	while(1) {
		produce() //生产正整数
		p(empty)	// 让我看看有没有
		p(metux)
		put()	//放入缓冲区
		v(metux)
	}
}

p2() { //拿奇数
	while(1) {
		p(odd)
		p(metux)
		getodd()	//拿奇数
		v(metux)
	}
}

p3() { //拿偶数
	while(1) {
		p(even)
		p(metux)
		geteven()	//拿偶数
		v(metux)
	}
}
  1. 然后找v
p1() { //生产
	while(1) {
		produce() //生产正整数
		p(empty)	// 让我看看有没有
		p(metux)
		put()	//放入缓冲区
		v(metux)
		if(生产的是偶数)	v(even)
		else v(odd)
	}
}

p2() { //拿奇数
	while(1) {
		p(odd)
		p(metux)
		getodd()	//拿奇数
		v(metux)
		v(empty)
		countodd()
	}
}

p3() { //拿偶数
	while(1) {
		p(even)
		p(metux)
		geteven()	//拿偶数
		v(metux)
		v(empty)
		counteven()
	}
}

v之间的位置关系是没有关系的
这里可能跟咸鱼学长的观念不太一样,找一个p对应找一个v

在这里插入图片描述


第46题

在这里插入图片描述

这个题个人觉得比价简单(当然不是每次都能这么简单,需要对虚拟地址=>物理地址的过程比较熟悉,不然就很容易漏了步骤少了时间)

最容易漏掉的就是访问了快表/内存的慢表查询到了页面之后,还需要一次访问内存页面的操作(如果缺页了还得加上缺页的时间)

在这里插入图片描述

看懂了下面这个感觉这个题就没啥问题了
驻留集:系统给进程分配了多少个页框,这里是2

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


第47题

在这里插入图片描述
这个题的考点是子网划分和网络聚合,以及路由表的编写

  • 第一小问
    120 < 27,因此需要7为作为子网的主机号,24位为网络号,则剩一位作为子网号
    子网的地址格式:网络号 子网号 主机号
    202.118.1.(8位:0/1 + 主机号)
    则两个子网为202.118.1.0 和 202.118.1.128

如何进行子网划分

在这里插入图片描述

  • 第二小问
    格式已经给了
目的网络地址子网掩码下一跳IP地址接口
202.118.1.0255.255.255.128-E1
202.118.1.128255.255.255.128-E1
202.118.3.2255.255.255.255202.118.2.2L0
0.0.0.00.0.0.0202.118.2.2L0

标黄色的我暂时没懂,是默认的还是?大神可以在发个评论解释一下
最后一个是默认路由,也就是通往互联网的路由

  • 第三小问
    路由聚合的问题,就是子网多变少,找前缀就行了

202.118.1.(0000 0000)
202.118.1.(1000 0000)

聚合结果为:202.118.1.(0000 0000) / 24,前24位是一样的,最后8位就取0了

目的网络地址子网掩码下一跳IP地址接口
202.118.1.0255.255.255.0202.118.2.1L0

如何进行路由聚合

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/8177.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第十一节:抽象类和接口【java】

目录 &#x1f947;1. 抽象类 &#x1f4d8;1.1 抽象类概念 &#x1f4d2;1.2 抽象类语法 &#x1f4d7; 1.3 抽象类特性 &#x1f3f9;2. 接口 &#x1f4d9;2.1 接口的概念 &#x1f4d5;2.2 语法规则 &#x1f4d2;2.3 接口使用 &#x1f50e;2.3.1USB接口例子 &a…

【Google Colab】使用手册、教程;使用 Google Colab 免费使用 python 服务器

Colaboratory 是一个 Google 研究项目&#xff0c;旨在帮助传播机器学习培训和研究成果。它是一个 Jupyter 笔记本环境&#xff0c;不需要进行任何设置就可以使用&#xff0c;并且完全在云端运行。Colaboratory 笔记本存储在 Google 云端硬盘中&#xff0c;并且可以共享&#x…

超详细图解kafka生产消费流程

目录&#xff1a; 一条消息在kafka是如何生产的&#xff1f; 一条消息在kafka是如何存储的&#xff1f; 一条消息在kafka是如何消费的&#xff1f; Kafka为什么高性能&#xff1f; Kafka为什么高可用&#xff1f; 一&#xff0e;一条消息在kafka是如何存储的&#xff1f; …

【前端】Vue+Element UI案例:通用后台管理系统-登陆不同用户显示不同菜单、动态添加路由

文章目录目标代码0.动态地显示菜单&#xff1a;store1.动态注册路由2.解决刷新后摆平问题总代码本篇修改的代码文件tab.js参考视频&#xff1a; VUE项目&#xff0c;VUE项目实战&#xff0c;vue后台管理系统&#xff0c;前端面试&#xff0c;前端面试项目案例链接【前端】VueEl…

spring-IOC理论推导P3

1.新建一个项目。名字叫做spring-study 2.导包 <dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.3.23</version></dependency></dependencies&…

solr-7.7.3 搭建

solr-7.7.3 搭建 solr-7.7.3 搭建 文章目录solr-7.7.3 搭建一、前期准备安裝规划(一)资料下载(二)上传文件二、安裝(一)创建新用户(二)安装solr1.solr安装包解压到/opt/module2.将解压文件名修改为solr3.修改配置文件(三)分发文件&#xff08;四&#xff09;开启solr&#xff…

YOLOv5量化调优

目录 一、背景 二、模型调优 2.1 基准选取 2.1.1 官方精度数据 2.1.2 fp32bmodel的精度 2.1.3 int8bmodel精度数据 2.2 多图量化 2.3 预处理对齐&lmdb 2.4 网络图优化 2.4.1 per_channel优化 2.4.2 accuracy_opt优化 2.4.3 conv_group优化 2.4.4 总结 2.5 混…

python中使用xlrd、xlwt操作excel表格详解

最近遇到一个情景&#xff0c;就是定期生成并发送服务器使用情况报表&#xff0c;按照不同维度统计&#xff0c;涉及python对excel的操作&#xff0c;上网搜罗了一番&#xff0c;大多大同小异&#xff0c;而且不太能满足需求&#xff0c;不过经过一番对源码的"研究"&…

移动电源出口美国和欧盟需要做什么?

手机的普遍使用也带动了充电宝的发展&#xff0c;现在是智能的时代&#xff0c;手机现在是我们每个人永远不会忘记带的东西&#xff0c;当然耗电量也是很大的。所以充电宝在这时就有很大的用处了。移动电源是一种集供电和充电功能于一体的便携式充电器&#xff0c;一般由锂离子…

杰理的蓝牙芯片的key是什么?以及该如何添加key?杰理key文件原理

目录 一、简介 关于杰理芯片的key文件&#xff0c;实际上 杰理芯片特有的一种机制&#xff0c;而这种机制就是存在于杰理芯片特有的架构&#xff0c;也是杰理公司延续将近10年的特点&#xff0c;估计以后也会是这种机制。具体为什么&#xff0c;请听我娓娓道来&#xff0c;这里…

测试大咖漫谈如何搞定软件质量?

关于质量保障&#xff0c;好像已经说过太多&#xff0c;但这里还是抽象的唠叨几句。 多年的软件测试和质量保障工作让我越来越清晰的认识到&#xff1a;质量绝对不是一个环节&#xff0c;一个工种可以搞定的。比如&#xff1a; 从对语言的误用&#xff0c;到对第三方组件的误用…

第4关: 网页排序——PageRank算法

要求&#xff1a;编写实现网页数据集PageRank算法的程序&#xff0c;对网页数据集进行处理得到网页权重排序。 ####相关知识 ######PageRank算法原理 1.基本思想&#xff1a; 如果网页T存在一个指向网页A的连接&#xff0c;则表明T的所有者认为A比较重要&#xff0c;从而把T的一…

【Shell】入门Shell(基本变量、环境变量、特殊变量)

Shell脚本一、Shell脚本的执行方式1.脚本格式要求2. 编写第一个Shell脚本3.Shell脚本的常用执行方式二、Shell的变量1.Shell变量介绍2. Shell变量的定义a. 基本语法b. 快速入门(三案例)2. Shell变量的定义a. 定义变量的规则b. 将命令的返回值赋给变量三、Shell多行注释1. 用 :&…

成本优化之使用P2P的方案的需要了解的本地SDK的背后的原理

文章目录一. P2P的SDK到底做了什么二. P2P原理1. 同流分享思路2. 目前方案三. 使用P2P后产生的问题1. 有概率出现loading转菊花2. 首次打开速度明显慢于正常的通道1-2秒参考文章一. P2P的SDK到底做了什么 P2P的SDK在我们App启动后其实是开启了一个服务&#xff0c;固定端口去监…

刷题日记【第十一篇】-笔试必刷题【小易的升级之路+找出字符串中第一个只出现一次的字符+微信红包+计算字符串的编辑距离】

1.计算字符串的编辑距离【动态规划编程题】 import java.util.Scanner; import java.io.*;// 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main {public static void main(String args[]) throws Exception{BufferedReader reader new BufferedReader(n…

【RuoYi-Vue-Plus】扩展笔记 07 - CentOS 7 集成 Prometheus + Grafana 监控初体验

文章目录前言参考目录官方文档博客参考相关书目操作步骤1、Prometheus1.1、安装 Prometheus1.2、配置 Prometheus1.3、访问控制台2、Grafana2.1、安装 Grafana2.2、访问控制台3、Grafana 大屏配置3.1、添加 Prometheus 数据源3.2、导入 dashboards 仪表板3.3、配置 node_export…

你安全吗?丨沉默的“复仇”到底是什么东西?

作者&#xff1a;黑蛋 在电视剧《你安全吗&#xff1f;》第七集中&#xff0c;因为周游的死缠烂打&#xff0c;秦淮第一次提起了他和陈默以前的事情&#xff0c;也给出了之前虎迫公司开除陈默的原因&#xff1a;陈默妈妈被诈骗团伙骗掉所有积蓄&#xff0c;又因为此事走神出了…

【附源码】计算机毕业设计JAVA计算机专业在线学习评估软件-演示录像-

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; Springboot mybatis Maven Vue 等等组成&#xff0c;B/…

Java抽象类

什么是抽象类&#xff1f; 如果一个类不能够表示一个准确的对象&#xff0c;则使用abstract修饰&#xff0c;表示为抽象类&#xff0c;抽象类就是为了被继承。抽象类使用abstract修饰 abstract class Animal {abstract public void eat(); }抽象类不能被实例化 public static …

第四节.常用Linux命令—文件内容查询

第四节.常用Linux命令—文件内容查询 1.查看目录内容&#xff1a;cat,more,grep 序号命令作用01cat 文件名查看文件内容&#xff0c;more创建文件&#xff0c;合并文件&#xff0c;追加文件内容等02more 文件名分屏显示文本内容03grep 搜索文本文件名搜索文本文件内容(模式查找…