2012年王道论坛研究生机试练习赛(一)by 陈锦赋
统考操作系统(2009-2012)试题及精心解析
5 / 21
王道论坛()组织名校高手精心解析,请珍惜我们的劳动成果! 址后访问主存 100ns,共计 10ns+100ns+100ns=210ns。
1565H:P=1,访问快表 10ns,落空,访问页表 100ns 落空,进行缺页中断处理 108ns, 访问快表 10ns,合成物理地址后访问主存 100ns,共计 10ns+100ns+108ns+10ns+100ns=100 000 220ns。
(1)依次访问上述三个虚地址,各需多少时间?给出计算过程。 (2)基于上述访问序列,虚地址 1565H 的物理地址是多少?请说明理由。
3 / 21
王道论坛()组织名校高手精心解析,请珍惜我们的劳动成果!
2009 年计算机统考——操作系统部分解析
一、单项选择题
23.D。考查并行性的限定。 单处理器系统中只有一条指令流水线,一个多功能的操作部件,每个时钟周期只能完成 一条指令,故进程与进程显然不可以并行。 24.D。考查几种基本的调度算法概念。 高响应比优先调度算法,同时考虑每个进程的等待时间和需要的执行时间,从中选出响 应比最高的进程投入执行。响应比 R 定义如下:响应比 R=(等待时间+执行时间)/执行时间。 25.C。考查死锁的条件。 这种题用到组合数学中鸽巢原理的思想,考虑最极端情况,因为每个进程最多需要 3 台打印机,如果每个进程已经占有了 2 台打印机,那么只要还有多的打印机,那么总能满足 达到 3 台的条件,所以,将 8 台打印机分给 K 个进程,每个进程有 2 台打印机,这个情况 就是极端情况,K 为 4。 26.A。考查分区分配存储管理方式的保护措施。 分区分配存储管理方式的保护措施是设置界地址寄存器。每个进程都有自己独立的进程 空间,如果一个进程在运行时所产生的地址在其地址空间之外,则发生地址越界,即当程序 要访问某个内存单元时,由硬件检查是否允许,如果允许则执行,否则产生地址越界中断, 由操作系统进行相应处理。 27.C。考查分段存储管理系统。 段地址为 32 位二进制数,其中 8 位表示段号,则段内位移占用 32 位-8 位=24 位二进 制数,故最大段长为 224B。 28.B。考查文件物理结构的特性。 随机访问是索引结构的特性。 29.A。考查磁盘的调度算法。 类似于电梯调度的思想。首先,磁头选择与当前磁头所在磁道距离最近的请求作为首次 服务的对象(110),当磁头沿途相应访问请求序列直到达到一端末(110,170,180,195), 再反向移动响应另一端的访问请求(68,45,35,12)。 30.A。考查文件控制块的内容。 在文件控制块中,通常含有以下三类信息,即基本信息、存取控制信息及使用信息。 31.B。考查软/硬链接建立的属性。 建立符号链接(软链接)时,引用计数值直接复制;建立硬链接时,引用计数值加 1。 删除文件时,删除操作对于符号链接是不可见的,这并不影响文件系统,当以后再通过符号 链接访问时,发现文件不存在,直接删除符号链接;但是对于硬链接则不可以直接删除,引 用计数值减 1,若值不为 0,则不能删除此文件,因为还有其他硬链接指向此文件。 32.A。考查系统调用的设备标识。 用户程序对 I/O 设备的请求采用逻辑设备名,而在程序实际执行时使用物理设备名。
2012年全国硕士研究生入学统一考试计算机专业考试预测(一)
2012年全国硕士研究生入学统一考试计算机专业基础综合考试预测数据结构1. 线性表的存储结构对比问题:链式存储和顺序存储的优缺点对比,各使用于那种应用场合2. 二叉树的构造与遍历问题:给定二叉树,能给出相应的前中后序遍历序列;给定一个中序遍历序列,再给出一个前序或后序遍历序列,构造出二叉树3. 树、二叉树和森林的相互转换问题:树<->二叉树<->森林之间的转换问题,注意树的左孩子右兄弟表示法4. Huffman树的构造与Huffman编码:节点的权值,根到叶子节点的路径长度;给定一组数据的出现频率,构造相应的Huffman码5. 图相关的定义问题:有向图,无向图,连同,强连通等概念的对比6. 图的关键路径问题:给定一个图,能求出相应的关键路径,并且能给出求关键路径所需的中间表格7. 图的最小生成树问题:Prim算法和Kruskal算法的具体步骤,给定一个图,能使用给定的算法构造相应的最小生成树8. 二分查找算法的基本方法:给定一组数据和需要查找的关键字,能够给出二分查找经过的节点序列9. 排序算法的特征问题:给定一组数据的初始状态和经过若干论排序后的状态,能推断出所使用的排序算法10. 算法复杂度分析问题:能够给出特定算法用大O表示的时间或空间复杂度计算机组成原理1. 计算机硬件性能指标计算问题:访问速率,存储容量,访问周期等指标的计算2. 奇偶校验码与循环冗余校验码:给定条件下奇偶校验码与循环冗余校验码的计算3. ROM与RAM的对比问题:存储特性,成本,速率等4. 主存储器的字位扩展问题:存储器的设计5. 段页式虚存的工作原理:段表,页表的构建,更新与访问,虚存访问的过程6. 指令的基本格式问题:操作码,地址码7. 指令系统设计问题:指令长度,操作码,地址码长度等问题8. 硬布线控制器与微程序控制器对比:设计复杂性,成本,效率,产生控制信号的方式等9. I/O设备编址:统一编址与单独编址方式的对比10. 中断:相关的概念,执行过程,用到的硬件等操作系统1. 经典同步问题:生产者消费者问题,读者写者问题,哲学家问题,以及应用PV操作解决经典同步问题的衍生或变形的问题2. 文件的共享与保护问题:不同共享与保护方法的对比3. 死锁的检测与解除:资源分配图法,死锁解除方法4. 缓存技术:缓解外设与CPU计算速率矛盾的方法5. 虚存的特征问题6. 进程状态转移问题:进程的创建,就绪,运行,阻塞,挂起等状态及其相互转换发生的条件7. 作业调度问题:不同的作业调度算法的对比8. 抖动与Belady现象:由于存储管理方式选用不当带来的系统效率下降问题9. 文件的存储方式:连续,链接,索引方式10. 磁盘调度问题:电梯算法,扫描算法等调度方法相关的计算问题11. 文件的逻辑结构计算机网络1. 数据链路层中的流量控制与可靠传输机制2. 有关物理层的数据传输率计算3. 电路交换、报文交换与分组交换4. OSI参考模型的分层结构5. 多帧华东窗口与后退N帧协议(GBN)6. 数据链路层介质访问控制协议7. 网际协议;IPv4ICMP协议8. 应用层DNS系统9. TCP可靠传输10. 电路交换、报文交换和分组交换11. 网络层的子网划分和路由协议12. 层的数据传输率计算13. 网络层的功能14. 信源跟信宿的概念15. 等待协议和退N帧协议希望通过预测,帮助广大考生在最后的关键时刻,梳理知识体系,准确把握命题点,直击命题要害,进而做好最终的考前冲刺。
11、【计算机】计算机2012年真题及解析
钻石卡高级辅导系统——全程、全方位、系统化解决考研所有问题,成功率趋近 100% 万学教育官方网址:
4
钻石卡高级辅导
„-‟、 „*‟、 „(‟、„(‟、„+‟依次入栈,此时,栈中元素个数为 5,分别为:- * ( ( + ; „+‟出栈,栈中元素个数为 4,分别为:- * ( ( ; „)‟入栈,与栈顶元素„(‟配成一对,都出栈,此时,栈中元素个数为 3,分别为:- * ( ; „/‟入栈,栈中元素个数为 4,分别为:- * ( / ; „/‟出栈,栈中元素个数为 3,分别为:- * ( ; „-‟入栈,栈中元素个数为 4,分别为:- * ( - ; „-‟出栈,栈中元素个数为 3,分别为:- * ( ; „)‟入栈,与栈顶元素„(‟配成一对,都出栈,此时,栈中元素个数为 2,分别为:- * ; „*‟出栈,栈中元素个数为 1:- ; „-‟出栈,栈空; „+‟入栈,栈中元素个数为 1:+ ; „+‟出栈,栈空; 根据以上分析可知,在中缀向后缀转换过程中,栈中操作符个数最多有 5 个,选 A。 3. 若一棵二叉树的前序遍历序列为 a、e、b、d、c,后序遍历序列为 b、c、d、e、a,则根结点的孩子结点 A. 只有 e 【答案】A 【解析】题中已知,二叉树的前序遍历序列为 a、e、b、d、c,后序遍历序列为 b、c、d、e、a,则可确定二叉树的根节点为 a。 前序遍历访问次序为:访问根节点;前序遍历左子树;前序遍历右子树。从而可以确定,e 为左子树或右子树的根节点,即根节点 a 的孩子结点。 ① 假设 e 为左子树根结点,则根据后序遍历结果可知,b、c、d 一定在左子树上,且以 e 为根节点,所以,b、c、d 不可能是 a 的孩子结点。 ② 若 e 为右子树根节点,根据前序遍历结果可知,此二叉树没有左子树,故只有 e 是 a 的孩子结点。 4. 若平衡二叉树的高度为 6,且所有非叶结点的平衡因子均为 1,则该平衡二叉树的结点总数为 : B. 有 e、b C. 有 e、c D. 无法确定
2012年最新机试模拟题(有空有答案)三套
void ReadText(FILE *); main() {FILE *fp; if((fp=fopen("myfile4.txt","w"))==NULL) {printf(" open fail!!\n"); exit(0);} WriteText(fp); fclose(fp); if((fp=fopen("myfile4.txt","r"))==NULL) {printf(" open fail!!\n"); exit(0);} ReadText(fp); fclose(fp); } /**********found**********/ void WriteText(FILE ___1___) {char str[81]; printf("\nEnter string with -1 to end :\n"); gets(str); while(strcmp(str,"-1")!=0) { /**********found**********/ fputs(___2___,fw); fputs("\n",fw); gets(str); } } void ReadText(FILE *fr) {char str[81]; printf("\nRead file and output to screen :\n"); fgets(str,81,fr); while(!feof(fr)) { /**********found**********/ printf("%s",___3___); fgets(str,81,fr); } } 解题答案: /**********第一空**********/ void WriteText(FILE *fw) /**********第二空**********/ fputs(str,fw); fputs("\n",fw); /**********第三空**********/ printf("%s",str);
2012年全国硕士研究生入学统一考试计算机专业考试预测(四)
2012年全国硕士研究生入学统一考试计算机专业基础综合考试预测临近考研,考研专业课教研中心,深入研究2012年考研统考专业课考试大纲,结合统考专业课的命题趋势、规律及特点,经过反复推敲锤炼之后,分析提炼各层级知识核心要点,从而对本年的考研命题进行预测,帮助学员把握出题重点。
数据结构1. 二叉树的存储结构2. 关键路径3. 哈夫曼(Huffman)树4. 快速排序5. 冒泡排序6. 平衡二叉树的概念、性质与构造7. 二叉树、树、森林的遍历8. 树、森林与二叉树的转换9. 树的概念与性质以及相关计算10. 顺序查找法与折半查找法11. 特殊矩阵的压缩存储12. 拓扑排序13. 无向连通图特性14. 线索二叉树的概念及线索二叉树的遍历15. 线性表中单链表相关算法设计与实现16. 栈和队列的应用17. 最小生成树计算机组成原理1. Cache结构及编址2. DMA方式3. RISC和CISC的基本概念4. TLB(快表)5. 程序中断方式6. 存储器的分类及层次化结构7. 定点数、浮点数的表示与运算8. 机器指令与微指令的关系9. 计算机系统层次结构10. 计算机相关工作过程的理解11. 数制与编码12. 微命令、微操作、微指令和微程序13. 硬布线控制器和微程序控制器的特点14. 与程序中断方式和DMA方式相关的计算15. 指令格式及其寻址方式16. 总线的性能指标计算、仲裁方式操作系统1. 存储的分区问题:静态分区,动态分区,不同分区方法的优劣2. 进程调度问题:先来先服务,优先级调度,分时轮转等3. I/O设备定义及相关问题:I/O设备的分类等4. 死锁的产生与预防:死锁的定义,死锁产生的必要条件,通过克服死锁产生的必要条件而预防死锁5. 操作系统的发展历程与相关的基本概念问题:多道系统,分时系统,实时系统等的特征,现代操作系统的四大特性6. 请求段页式存储分配问题7. 文件与目录的定义问题:相关的概念作出判读8. 索引文件系统管理:计算文件系统支持的最大文件大小,给出文件访问时需要访问的磁盘块数9. 文件的逻辑结构10. 设备的分配与回收:不同的分配方法,回收方法以及相应的过程11. 进程的同步与互斥问题:临界区,临界段,硬件实现的互斥访问计算机网络1. CIDR技术:变长掩码,子网设计,IP地址分配2. ISOOSI/RM参考模型与TCP/IP模型:两种模型各层的功能与对应关系3. 局域网相关特性:MAC地址,使用的硬件设备,帧结构等4. IP头部个字段的含义5. 信源与信宿的概念6. 应用层基本概念7. UDP头部:UDP头部结构,端口的概念,常用端口号8. TCP可靠传输机制:TCP重传机制,TCP头部序列号9. 路由算法:链路状态算法,最短路径算法10. FTP协议:工作方式11. 数据链路层成帧问题:三种主要的成帧方法希望通过预测,帮助广大考生在最后的关键时刻,梳理知识体系,准确把握命题点,直击命题要害,进而做好最终的考前冲刺。
[王道]2009-2012年计算机统考原版试卷(实战模拟专用)
11 . 冯 · 诺 依 曼 计 算 机 中 指 令 和 数 据 均 以 二 进 制 形 式 存 放 在 存 储 器 中 , CPU 区 分 它 们 的 依 据
12 .一个 C 语言程序在一台 32 位机器上运行。程序中定义了三个变量 x 、y 和 z,其中 x 和 z 为 int 型, y 为 short 型。当 x=127 , y=- 9 时,执行赋值语句 z=x+y 后, x、 y 和 z 的值分别是 A. x=0000007FH , y=FFF9H , z=00000076H B. x=0000007FH , y=FFF9H , z=FFFF0076H C. x=0000007FH , y=FFF7H , z=FFFF0076H D. x=0000007FH , y=FFF7H , z=00000076H 13 .浮点数加、减运算过程一般包括对阶、尾数运算、规格化、舍入和判溢出等步骤。设浮点数的 阶码和尾数均采用补码表示,且位数分别为 5 位和 7 位(均含 2 位符号位) 。若有两个数 X=2 7×29/32 , Y=2 5×5/8 ,则用浮点加法计算 X+Y 的最终结果是 A. 00111 1100010 C. 01000 0010001 。 B. 00111 0100010 D.发生溢出 。
16 .某机器字长为 16 位,主存按字节编址,转移指令采用相对寻址,由两个字节组成,第一字节为 操作码字段,第二字节为相对位移量字段。假定取指令时,每取一个字节 PC 自动加 1 。若某转移指令所 在主存地址为 2000H,相对位移量字段的内容为 06H,则该转移指令成功转移后的目标地址是 A. 2006H B. 2007H C. 2008H 。 D. 2009H 17 .下列关于 RISC 的叙述中,错误的是 A. RISC 普遍采用微程序控制器 B. RISC 大多数指令在一个时钟周期内完成 C. RISC 的内部通用寄存器数量相对 CISC 多 D. RISC 的指令数、寻址方式和指令格式种类相对 CISC 少 18 .某计算机的指令流水线由四个功能段组成,指令流经各功能段的时间(忽略各功能段之间的缓 存时间)分别为 90ns、 80ns、 70ns、和 60ns,则该计算机的 CPU 时钟周期至少是 A. 90ns B. 80ns C. 70ns 。 D. 60ns 19 .相对于微程序控制器,硬布线控制器的特点是 A.指令执行速度慢,指令功能的修改和扩展容易 B.指令执行速度慢,指令功能的修改和扩展难 C.指令执行速度快,指令功能的修改和扩展容易 。 。
2012年计算机统考真题及答案解析(套题版)
王道论坛()原创并友情分享!~
R1 P0 P1 P2 P3 P4 A. P0, P2, P4, P1, P3 C. P2, P1, P0, P3, P4 正确的是 。 3 4 4 2 3
R2 2 0 0 0 1
R3 3 3 5 4 4
R1 5 5 4 4 4
R2 5 3 0 2 2
18 .某计算机的控制器采用微程序控制方式,微指令中的操作控制字段采用字段直接编码法,共有 33 个微命令,构成 5 个互斥类,分别包含 7 、 3 、 12 、 5 和 6 个微命令,则操作控制字段至少有 A. 5 位 B. 6 位 C. 15 位 D. 33 位
19 .某同步总线的时钟频率为 100MHz,宽度为 32 位,地址 /数据线复用,每传输一个地址或数据 占用一个时钟周期。若该总线支持突发(猝发)传输方式,则一次“主存写”总线事务传输 128 位数据 所需要的时间至少是 A. 20ns 。 B. 40ns C. 50ns 。 D.80ns
R3 10 6 11 5 4
B. P1, P0, P3, P4, P2 D. P3, P4, P2, P1, P0
28 .若一个用户进程通过 read 系统调用读取一个磁盘文件中的数据,则下列关于此过程的叙述中, Ⅰ.若该文件的数据不在内存,则该进程进入睡眠等待状态 Ⅱ.请求 read 系统调用会导致 CPU 从用户态切换到核心态 Ⅲ. read 系统调用的参数应包含文件的名称 A. 仅Ⅰ、Ⅱ 顺序如下: P1 :计算 60ms, I/O 80ms ,计算 20ms P2 :计算 120ms, I/O 40ms ,计算 40ms 若不考虑调度和切换时间,则完成两个作业需要的时间最少是 A. 240ms 是 。 A.在进程结束时能进行处理机调度 B.创建新进程后能进行处理机调度 C.在进程处于临界区时不能进行处理机调度 D.在系统调用完成并返中,正确的是 。 A.不管系统是否支持线程,进程都是资源分配的基本单位 B.线程是资源分配的基本单位,进程是调度的基本单位 C.系统级线程和用户级线程的切换都需要内核的支持 D.同一进程中的各个线程拥有各自不同的地址空间 32 .下列选项中,不能改善磁盘设备 I/O 性能的是 A.重排 I/O 请求次序 C.预读和滞后写 A. PPP A.机械特性 B. IP B.功能特性 。 B.在一个磁盘上设置多个分区 D.优化文件物理块的分布 。 D. TCP 。 D.电气特性 C. UDP C.过程特性 。 B.无连接可靠服务 D.有连接可靠服务 B. 260ms C. 340ms 。 D. 360ms B. 仅Ⅰ、Ⅲ C. 仅Ⅱ、Ⅲ D. Ⅰ、Ⅱ和Ⅲ 29 .一个多道批处理系统中仅有 P1 和 P2 两个作业, P2 比 P1 晚 5ms 到达,它们的计算和 I/O 操作
中科大计算机考研2006-2012机试试题
中科大计算机考研 2012 复试机试试题
(感谢王道论坛“林影清风”版主) 本次机试两个半小时,共 5 题。 1. 字符串处理:从 string.in 文件里读入两个字符串,字符串除了数字还可能包括 '—'、 'E'、'e'、'.',相加之后输出到文件 string.out 中,如果是浮点型,要求用科学计数法表示(最 多包含 10 个有效数字) 。 Sample Input: Sample Output: 34.56 2.7956e2 2.45e2 2. 最大公约数:从 number.in 文件中读入 n 个数,求出这 n 个数的最小值、最大值以 及它们两的最大公约数,输出到文件 number.out 中。number.in 中第一行为 n,接下来为 n 个大于零的整数。 Sample Input: Sample Output: 3 484 486 3. 任务调度:从 task.in 文件中读入任务调度序列,输出 n 个任务适合的一种调度方式 到 task.out 中。每行第一个表示前序任务,括号中的任务为若干个后序任务,表示只有在前 序任务完成的情况下,后序任务才能开始。若后序为 NULL 则表示无后继任务。 Sample Input: Sample Output: Task0(Task1,Task2) Task0 Task1 Task3 Task2 Task1(Task3) Task2(NULL) Task3(NULL) 4. 火车票订购:火车经过 X 站,火车最大载客人数为 m,有 n 个订票请求,请求订购 从 a 站到 b 站的 k 张票, 若能满足订购要求则输出 1, 否则输出 0。 数据从 ticket.in 中输入, 第一行有四个数,分别为 n,m。接下来有 n 行,每行三个数分别为 a,b,k。结果输出到 文件 ticket.out 中。 Sample Input: Sample Output: 5 10 1 4 10 9 0 8 12 2 1 8 12 1 1 14 20 8 0 30 300 15 5. 最短路径:有 n 个城市 m 条道路(n<1000, m<10000),每条道路有个长度,请找到 从起点 s 到终点 t 的最短距离,并且输出经过的城市的名,如果有多条,输出字典序最小的 那条;若从 s 到 t 没有路径,则输出“can't arrive” 。从 road.in 中读入数据,第一行有四个 数,分别为 n,m,s,t。接下来 m 行,每行三个数,分别为两个城市名和距离。输出结果 到 road.out 中。
王道模拟试题
王道计算机统考模拟试题第6套一、单项选择题:第1~40小题,每小题2分,共80分。
下列每题给出的四个选项中,只有一个选项最符合试题要求。
1. 若已知一个栈的入栈序列是1,2,3,4。
其出栈序列为p1,p2,p3,p4,则p2,p4不可能是()。
A.2、 4 B.2、 1 C.4、 3 D.3、 42. 在链式队列的出队操作中,需要修改尾指针的情况发生在()。
A.队列为空队列时B.变成满队列的时候C.队列只剩一个元素的时候D.任何时候3. 一棵完全二叉树上有1001个结点,其中叶子结点的个数是()。
A.250B.500C.254D.5014. 由某种序列可以唯一的确定一棵二叉树,不能唯一的确定一棵二叉树是()。
A.先序序列和中序序列B.后序序列和中序序列C.中序序列和层序序列D.先序序列和层序序列5. 分别以下列序列构造二叉排序树,与用其它三个序列所构造的结果不同的是()。
A. (100,80, 90,60,120,110,130)B. (100,120,110,130,80,60,90)C.(100,60,80,90,120,110,130) D. (100,80, 60, 90,120,130,110)6. 由4棵树组成的森林中,第一、第二、第三和第四棵树中的结点数分别为30、10、20、5,当把森林转换成二叉树后,对应二叉树中根结点的右子树的左子树的结点数为()。
A. 29B. 9C. 25D. 197. 如果具有n个顶点的图是一个环,则它有()棵生成树。
2A.n B.n C.n-1D.18. 如右图所示,在下面的5个序列中,符合深度优先遍历的序列有多少个()。
1. aeb fdc2. acfdeb3. aedfcb4. aefdbc5. aecfd bA.5 B.4 C.3 D.29. 在一棵含有n个关键字的m阶B-树中进行查找,至多需要读盘()次(假设读一次盘就能将整个结点取出)。
A.log2nB.1+log2nC.1+log m/2 [(n+1)/2]D. 1+log n/2 [(m+1)/2]10. 一组数据(30,20,10,15,35,1,10,5),用堆排序(小顶堆)的筛选方法建立的初始堆为()。
2012年北京交通大学研究生考试操作系统真题
北京交通大学2012年硕士研究生入学考试试卷科目代码:923 科目名称:操作系统原理注意事项:答案一律写在答题纸上,写在试卷上的答案不予装订和评分一、简题(本部分共5个小题,每个小题10分,共50分)1.方便性和有效性是设计操作系统的两个主要目标,以两种操作系统的技术为例,分别说明它们是如何实现这两个目标的(一个实现方便性的例子,一个实现有效性的例子)。
2.主流微型计算机中分页存储系统中页面的大小通常设定为1KB、2KB/4KB等。
如果页面大小设置为更大或者更小,会带来哪些好处和问题?3.如果用于进程同步的信号量的P、V操作不用原语实现,会产生什么后果?举例说明。
4.磁盘长期使用后,读写磁盘中数据的速度就会变慢,而执行磁盘碎片整理程序后,速度就提高了,为什么?5.虚拟内存的容量可以比物理内存大得多,但是访问速度和物理内存相近,为什么?二、计算论证题(本部分共5个小题,每个小题12分,共60分)1.假设共有5个作业J1、J2、J3、J4、J5,它们到达时刻分别是0、2、2、5、6,服务时间分别是3、10、5、6、2。
采用高响应比优先调度算法,计算这些作业的平均周转时间和平均带权周转时间。
2.某文件系统采用索引物理结构存放文件,磁盘空间为1000GB。
一个目录项可以存储10个盘块的地址,前9个为直接地址,最后一个为一级间址。
若盘块的大小为512B,则该文件系统最大能支持的文件大小是多少?3.在请求分段存储系统中,每个段空间最大为16KB。
假定某个时段该用户的段表如下图所示。
试问:(1)逻辑地址0xA92B 对应的物理地址是多少?(2)逻辑地址0x071F对应的物理地址是多少?(3)逻辑地址0xE068对应的物理地址是多少?4.有一个请求页式虚拟存储系统。
如果分配给某进程3个内存物理块,开始时内存中预装入第1、2、3个页面,该进程的页面访问序列如下:1、2、4、2、6、2、1、5、6、1(1)若采用最佳页面置换算法,缺页率为多少?(2)若采用最近最少使用的页面置换算法LRU,缺页率为多少?5.有3个进程P1、P2、P3总共需要资源<R1,R2>的最大数目依次为<7,5>、<3,3>、<4,4>(均是互斥共享资源)。
2012 全国硕士研究生入学统一考试计算机学科专业基础综合试题模拟试题3
2012 全国硕士研究生入学统一测试计算机学科专业基础综合试题模拟题三一、单项选择题:第1~40小题,每小题2分,共80分。
下列每题给出的四个选项中,只有一个选项最符合试题要求。
1. 在具有n 个结点的顺序表,算法的时间复杂度是O(1)的操作是A. 访问第i 个结点(1≤i≤n)和求第i 个结点的直接前驱(2≤i≤n)B.在第i 个结点后插入一个新结点(1≤i≤n)C.删除第i 个结点(1≤i≤n)D.将n 个结点从大到小排序2. 使用双链表存储线性表,其优点是I 提高查找速度II 更方便数据的插入和删除III 节约存储空间IV 很快回收存储空间A.I、II B.I、IV C.仅II D.II、III、IV3. 若进栈序列为a,b,c,则通过出栈操作可能得到a,b,c 的不同排列个数为A.4B.5C.6D.74. 若对n 阶对称矩阵A[1..n,1..n]以行序为主序方式下将其下三角的元素(包括主对角线上的所有元素)依次存放于一维数组B[1..n(n+1)/2]中,则在 B 中确定aij (i<j)的位置k 的关系是A.i(i-1)/2+j B.j(j-1)/2+iC.i(i+1)/2+j D.j(j+1)/2+i5. 在线索化二叉树中,t 所指结点没有左子树的充要条件是A.t->left=NULLC. t->ltag=1 且t->left=NULL B. t->ltag=1D. 以上都不对6. 若采用邻接矩阵来存储简单有向图,则其某一个顶点i 的入度等于该矩阵A.第i 行中值为1 的元素个数B. 所有值为1 的元素个数C.第i 行及第i 列中值为1 的元素总个数D.第i 列中值为1 的元素个数7. 在有11 个元素的有序表A[1..11]中进行折半查找,查找元素A[11]时,被比较的元素的下标依次是A.6,8,10,11B. 6,9,10,11C. 6,7,9,11D. 6,8,9,118. 设散列表表长m=14,散列函数H(k)=k MOD 11,表中已有15,38,61,84 四个元素,如果用线性探测法处理冲突,则元素49 的存储地址是A.8 B.3 C.5 D.99. 以下关于查找方法的说法正确的是I 顺序查找法只能在顺序存储结构上进行。
2012年计算机考研模拟试题
A. 并行技术
B. 通道技术
C. 缓冲技术
D. 虚存技术
33. 传输层的作用是向源主机和目的主机之间提供―端对端‖的逻辑通信,其中―端对端‖的含义是( )。
A. 源主机网卡到目的主机网卡之间
B. 操作源主机的用户和操作目的主机的用户之间
C. 源主机和目的主机的进程之间
D. 源主机所在网络和目的主机所在网络之间
I. 外部事件
II. Cache
III. 虚拟存储器失效
IV. 浮点运算下溢
V. 浮点运算上溢
A. I、III 和 IV B. I 和 V C. I、II 和 III
D. I、III 和 V
23. 相对采用单一内核结构,采用微内核结构设计和实现操作系统有诸多好处,但是( )不是微内核
的优势。
A. 使系统更高效
存放,每个整数占两个字节,将数组初始化为 0 的程序描述如下:
int A[50][50];
for(int i=0;i<50;i++)
for(int j=0;j<50;j++)
A[i][j]=0; 若在程序执行时内存只有一个存储块用来存放数组信息,则该程序执行时产生( )次缺页中断。
A. 1 B. 50 C. 100
C. IV、V 和 VI
D. III 和 V
30. 下列关于文件系统的说法中,正确的是( )。
A. 文件系统负责文件存储空间的管理但不能实现文件名到物理地址的转换
B. 在多级目录结构中对文件的访问是通过路径名和用户目录名进行的
C. 文件可以被划分成大小相等的若干物理块且物理块大小也可任意指定
D. 逻辑记录是对文件进行存取操作的基本单位
2009全国计算机技能大赛0616(2012年国赛模拟试题一)
2009全国计算机技能大赛企业网搭建与调试试题(180分钟)网络搭建部分(总分300分)网络配置要求如下:(1)制作网线:制作20根网线,要求为15根直连线和5根交叉线。
(20分)(2)按图正确连接设备。
(10分)(3)将三层交换机和路由器都设置telnet登录,登录用户名为ruijie,密码为bisai,密码以明文方式存储。
(20分)(4)在二层交换机上划分端口1-3到VLAN10,端口4-6到VALN20,端口7-9到VLAN30;并按图示要求正确配置其余VLAN。
(20分)(5)在三台交换机上配置MSTP,并且创建二个MSTP实例:Instance10、Instance11;其中,Instance10包括:VLAN10、20、30;而Instance11包括:VLAN40、VLAN50;实现两条链路的负载均衡;除交换机互联的端口外,在其余端口上进行STP优化。
(30分)(6)在S3760A和S3760B上的端口F0/16-18配置链路聚合,聚合组为port-group2。
在S3760B 上配置聚合端口port-group2到F0/11的端口镜像,该镜像只把源聚合端口的接收数据进行镜像。
(20分)(7)在S2026端口F0/10配置端口安全,最多允许通过4个MAC地址,违例则丢弃。
将PC1及虚拟机的MAC地址与端口F0/10、对应VLAN进行绑定。
(20分)(8)两台路由器间封装CHAP验证的PPP协议。
RS20-A用户名为:RDCE,密码为:digital;RS20-B用户名为:RDTE,密码为:digital。
DCE时钟设置为204800。
(20分)(9)按图示运行路由协议(要求最简配置),实现全网通;自定义:vlan-Interface 40的地址为:_________________vlan-Interface 50的地址为:__________________。
(40分)(10)配置SNMP管理,管理服务器为192.168.10.80,公共字符串为public,团体字符串为prative。
2006-2012年真题
西南交通大学信息科学与技术学院2014年计算机/软件工程/信息安全硕士研究生入学考试840 数据结构与程序设计/ 959 数据结构之(免费资料,请勿掏钱购买!谁掏钱,我跟谁急)Powered by 未休矣试题代码: 959 试题名称:数据结构机密★启用前西南交通大学2012年全日制硕士研究生入学考试试卷试题代码:959试题名称:数据结构考试时间:2012年1月考生请注意:1.本试题共4题,共6页,满分150分,请认真检查;2.答题时,直接将答题内容写在考场提供的答题纸尚,答在试卷上的内容无效;3.请在答题纸上按要求填写试题代码和试题名称;4.试卷不得拆开,否则遗失后果自负。
一、单项选择题(本大题共25题,每题2分,共50分)1.以下属于数据的逻辑结构的是【】A.顺序表 B.哈希表 C.线性表 D.单链表2.计算机所处理的数据一般具有某种内在联系,这是指【】A.数据与数据之间存在某种关系B.数据元素与数据元素之间存在某种关系C.元素内部存在某种结构D.数据项与数据项之间存在某种关系3.线性表是具有n个【】的有限序列(n≥0)。
A.表元素B.字符C.数据元素D.数据项4.若某线性表最常用的操作是存取任意指定序号的元素和在表尾进行插入和删除,则选用【】的存储方式最节省时间。
A.顺序表B.双链表C.带头结点的双循环链表D.单循环链表5.若长度为n的线性表采用顺序存储结构,在第i个位置插入一个新元素的算法的时间复杂度为【】。
A.O(0)B. O(1)C. O(n)D. O()6.如果对线性表的运算只有两种,即删除第一个数据元素,在最后一个数据元素的后面插入一个新数据元素,则最好使用【】A.只有表头指针没有表尾指针的单循环链表B.只有表尾指针没有表头指针的单循环链表C.非循环双链表D.顺序表7.对于一个线性表,既要求能够较快速地进行插入和删除,又要求存储结构能反映数据元素之间的逻辑关系,则应该采用【】A.顺序存储方式B.链式存储方式C.随机存储方式D.以上均可以8.用单链表表示的链队列的链表指针在链表的【】A.链头B.链尾C.链中D.都不是9.对于循环队列【】A.无法判断队列是否为空B.无法判断队列是否为满C.队列不可能为满D.以上说法都不对10.一个栈的进栈序列为A、B、C、D、E,则栈的不可能的输出序列是【】A.EDCBAB.DECBAC.DCEABD.ABCDE11.循环队列的最大容量为M,则队空的条件是【】A.rear==frontB.(rear+1)%M==frontC.rear+1==frontD.(rear-1)%M==front12.【】是C语言中串“abcd321ABCD”的子串。
2012研究生数学建模竞赛C题-中文繁体
有杆抽油系統的數學建模及診斷目前,開採原油廣泛使用的是有杆抽油系統(垂直井,如圖1)。
電機旋轉運動轉化為抽油杆上下往返週期運動,帶動設置在杆下端的泵的兩個閥的相繼開閉,從而將地下上千米深處蘊藏的原油抽到地面上來。
鋼制抽油杆由很多節連接而成,具有相同直徑的歸為同一級,級數從上到下按1,2…進行編號,可多達5級,從上端點到下端點可能長達上千米。
描述抽油杆中任意一水平截面(為表述方便,下面把杆水平截面抽象稱為“點”)處基本信息的通用方法是示功圖:它是該點隨時間t而變化的荷載(合力,向下為正)數據作為縱坐標,以該點垂直方向上隨時間t而變化的位置相對於t=0時刻該點位置的位移數據作為橫坐標構成的圖形。
函數關係表現為位移-荷載關於時間t的參數方程。
一個衝程(衝程的說明見附錄)中示功圖是一條封閉的曲線。
構成示功圖的數據稱為示功數據。
抽油杆上端點稱為懸點,圖4示意了懸點E的運動過程。
在一個衝程期間,儀器以一系列固定的時間間隔測得懸點E處的一系列位移數據和荷載數據,據此建立懸點E的示功圖稱為懸點示功圖。
附件1、2中的位移-荷載數據是某油田某井採油工作時採集的懸點處原始示功數據。
“泵”是由柱塞、遊動閥、固定閥、部分油管等幾個部件構成的抽象概念(見圖2),泵中柱塞處的示功圖稱為泵功圖。
因為受到諸多因素的影響,在同一時刻t,懸點處的受力(荷載)與柱塞的受力是不相同的;同樣,在同一時刻t,懸點處的相對位移與柱塞的相對位移也不相同。
因此懸點示功圖與泵功圖是不同的。
圖5給出了理論懸點示功圖和理論泵功圖。
示功圖包含了很多信息,其中就有有效衝程,泵的有效衝程是指泵中柱塞在一個運動週期內真正實現從出油口排油的那段衝程。
工程上一般根據示功圖形狀與理論示功圖進行對比來判斷抽油機工作狀態。
通過懸點示功圖可以初步診斷該井的工作狀況,如產量、氣體影響、閥門漏液、沙堵等等。
要精確診斷油井的工作狀況,最好採用泵功圖。
然而,泵在地下深處,使用儀器測試其示功數據實現困難大、成本高。
天勤论坛_天勤论坛_【天勤论坛—ACM俱乐部】王道机试教程107道题目练习地址
以下为王道论坛机试教程中的107道题目的练习地址,全部免费使用。
可以无限次提交。
(1)排序:/problem.php?id=1111(2)成绩排序:/problem.php?id=1112(3)特殊排序:/problem.php?id=1113(4)EXCEL排序:/problem.php?id=1114(5)字符串内排序:/problem.php?id=1115(6)日期差值:/problem.php?id=1116(7)Day of Week:/problem.php?id=1117(8)今年的第几天?:/problem.php?id=1118(9)打印日期:/problem.php?id=1119(10)统计同成绩学生人数:/problem.php?id=1120(11)Sort:/problem.php?id=1108(12)谁是你的潜在朋友:/problem.php?id=1033(13)剩下的树:/problem.php?id=1070(14)输出梯形:/problem.php?id=1121(15)叠筐:/problem.php?id=1087(16)Repeater:/problem.php?id=1086(17)找x:/problem.php?id=1122(18)查找学生信息:/problem.php?id=1123(19)打印极值点下标:/problem.php?id=1124(20)查找:/problem.php?id=1125(21)FatMouse :/problem.php?id=1109(22)今年暑假不AC:/problem.php?id=1071(23)迷瘴:/problem.php?id=1390(24)Repair the Wall:/problem.php?id=1107(25)To Fill or Not to Fill:/problem.php?id=1416(26)括号匹配问题:/problem.php?id=1072(27)简单计算器:/problem.php?id=1100(28)堆栈的使用:/problem.php?id=1083(29)计算表达式:/problem.php?id=1047(30)哈夫曼树:/problem.php?id=1106(31)搬水果:/problem.php?id=1073(32)二叉树遍历:/problem.php?id=1084(33)二叉树:/problem.php?id=1074(34)树查找:/problem.php?id=1089(35)二叉排序树:/problem.php?id=1104(36)二叉搜索树:/problem.php?id=1105(37)还是A+B:/problem.php?id=1126(38)守形数:/problem.php?id=1127(39)特殊乘法:/problem.php?id=1075(40)反序数:/problem.php?id=1128(41)对称平方数:/problem.php?id=1050(42)Digital Roots:/problem.php?id=1036(43)又一版A+B:/problem.php?id=1129(44)数制转换:/problem.php?id=1130(45)进制转换:/problem.php?id=1131(46)八进制:/problem.php?id=1132(47)最大公约数:/problem.php?id=1049(48)最小公倍数:/problem.php?id=1133(49)Least Common Multiple :/problem.php?id=1134 (50)素数判定:/problem.php?id=1044(51)素数:/problem.php?id=1135(52)Prime Number:/problem.php?id=1136(53)Goldbach's Conjecture:/problem.php?id=1095 (54)质因数的个数:/problem.php?id=1137(55)整除问题:/problem.php?id=1053(56)约数的个数:/problem.php?id=1138(57)人见人爱 A ^ B:/problem.php?id=1076 (58)A sequence of numbers :/problem.php?id=1101 (59)Tr A:/problem.php?id=1082(60)a+b:/problem.php?id=1139(61)N的阶乘:/problem.php?id=1098(62)进制转换:/problem.php?id=1131(63)浮点数加法:/problem.php?id=1110(64)大整数排序:/problem.php?id=1141(65)10进制VS 2进制:/problem.php?id=1142 (66)畅通工程:/problem.php?id=1143(67)More is better :/problem.php?id=1102(68)连通图:/problem.php?id=1080(69)How Many Tables:/problem.php?id=1099 (70)Head of a Gang:/problem.php?id=1420(71)还是畅通工程:/problem.php?id=1069(72)Freckles:/problem.php?id=1088(73)Jungle Roads:/problem.php?id=1208(74)畅通工程:/problem.php?id=1144(75)继续畅通工程:/problem.php?id=1145(76)最短路:/problem.php?id=1146(77)最短路径问题:/problem.php?id=1225(78)最短路径:/problem.php?id=1147(79)I Wanna Go Home:/problem.php?id=1210 (80)Legal or Not:/problem.php?id=1148(81)确定比赛名次:/problem.php?id=1077(82)产生冠军:/problem.php?id=1103(83)百鸡问题:/problem.php?id=1149(84)Abc:/problem.php?id=1150(85)求最大值:/problem.php?id=1039(86)胜利大逃亡:/problem.php?id=1209(87)非常可乐:/problem.php?id=1078(88)汉诺塔III:/problem.php?id=1151(89)Prime ring problem :/problem.php?id=1090 (90)Oil Deposit:/problem.php?id=1153(91)全排列:/problem.php?id=1155(92)Tempter of the bone:/problem.php?id=1097 (93)N阶楼梯上楼问题:/problem.php?id=1156 (94)不容易系列之一:/problem.php?id=1157 (95)吃糖果:/problem.php?id=1079(96)拦截导弹:/problem.php?id=1085(97)合唱队形:/problem.php?id=1094(98)Coincidence:/problem.php?id=1158(99)搬寝室:/problem.php?id=1081(100)Greedy Tino:/problem.php?id=1096 (101)采药:/problem.php?id=1093(102)Piggy-Bank:/problem.php?id=1091 (103)珍惜现在,感恩生活:/problem.php?id=1092 (104)字符串的查找删除:/problem.php?id=1064 (105)产生冠军:/problem.php?id=1103(106)单词替换:/problem.php?id=1159(107)字符串去特定字符:/problem.php?id=1160。
2012年北京交通大学研究生考试操作系统真题
王道论坛王道论坛 风影风影 北交大版版主北交大版版主 海哥整理海哥整理 免费提供给学弟学妹们考研使用 切勿用于商业用途切勿用于商业用途1 北京交通大学2012年硕士研究生入学考试试卷科目代码: 923 科目名称: 操作系统原理注意事项:答案一律写在答题纸上,写在试卷上的答案不予装订和评分 一、 简题(本部分共5个小题,每个小题10分,共50分)1. 方便性和有效性是设计操作系统的两个主要目标,以两种操作系统的技术为例,分别说明它们是如何实现这两个目标的(一个实现方便性的例子,一个实现有效性的例子)。
2. 主流微型计算机中分页存储系统中页面的大小通常设定为1KB 、2KB/4KB 等。
如果页面大小设置为更大或者更小,会带来哪些好处和问题?3. 如果用于进程同步的信号量的P 、V 操作不用原语实现,会产生什么后果?举例说明。
王道论坛王道论坛 风影风影 北交大版版主北交大版版主 海哥整理海哥整理 免费提供给学弟学妹们考研使用 切勿用于商业用途切勿用于商业用途2 王道论坛王道论坛 风影风影 北交大版版主北交大版版主 海哥整理海哥整理 免费提供给学弟学妹们考研使用 切勿用于商业用途切勿用于商业用途3 3. 在请求分段存储系统中,在请求分段存储系统中,每个段空间最大为每个段空间最大为16KB 。
假定某个时段该用户的段表如下图所示。
示。
段号段号 起始地址起始地址 段长(B) 0 5K 3K 1 9K 600 2 12K 10K 3 ——试问:试问:(1) 逻辑地址0xA92B 对应的物理地址是多少?对应的物理地址是多少?(2) 逻辑地址0x071F 对应的物理地址是多少?对应的物理地址是多少?(3) 逻辑地址0xE068对应的物理地址是多少?对应的物理地址是多少?4. 有一个请求页式虚拟存储系统。
如果分配给某进程3个内存物理块,开始时内存中预装入第1、2、3个页面,该进程的页面访问序列如下:1、2、4、2、6、2、1、5、6、1 (1) 若采用最佳页面置换算法,缺页率为多少?王道论坛王道论坛 风影风影 北交大版版主北交大版版主 海哥整理海哥整理 免费提供给学弟学妹们考研使用 切勿用于商业用途切勿用于商业用途4 (2) 若采用最近最少使用的页面置换算法LRU ,缺页率为多少?,缺页率为多少?5. 有3个进程P1、P2、P3总共需要资源<R1,R2>的最大数目依次为<7,5>、<3,3>、<4,4>(均是互斥共享资源)。
2012计算机考研408真题和答案
(Rs)->mem
5
IF
/
ID
/
EX
M
WB
1 int
x
-513
R1
SHL R1 R1
2
4
4
3
x = a+b, x a b int
[x] [a] [b]
44
I1 LOAD R1, [a] I2 LOAD R2, [b] I3 ADD R1, R2 I4 STORE R2, [x]
1 2 3 4 5 6 7 8 9 10 11 12 13 14
}
While(L--)
longList=longList->next;
while(longList!=NULL){
if(longList==shortList)//
return longList;
else{
longList=longList->next;
shortlist=shortlist->next;
41~47
70
41.
1 m+n-1
mn 5
X-5 X
N X
2NN2 N N
42. 1
L1 L2 L
N-1
k L1 L2
L=|L1-L2|
15
X-N+1 X
N
k
2
C
LinkList Search_First_Common(LinkList L1,LinkList L2){
//
int len1=Length(L1);,len2=Length(L2);
IP
TCP
47-a
47-b
bit 0
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
A.移动次数题目意思就是把最小的放到第一位,最大的放到最后一位。
不过需要注意的是,最大和最小均可能出现多个,那么,选最小的应该是最靠近第一位的,最大的应该选最靠近最后的,还有需要注意的是,选好的最大的和最小的位置,如果最大的位置在最小的前面,那么移动次数需要注意一下。
#include<iostream>#include<string>#include<algorithm>#include<cstdio>#include<cstring>using namespace std;int main(){int n;while(scanf("%d", &n) != EOF){int ax, ay, bx, by, t;ax = 201, bx = -1;int i;for(i = 0; i < n; ++i){scanf("%d", &t);if(ax > t){//选择最小ax = t;ay = i;}if(bx <= t){//选择最大bx = t;by = i;}}int ans;if(ay < by){ans = n - by - 1 + ay;}else{ans = n - by - 1 + ay - 1;}printf("%d\n", ans);}return 0;}B.简单计算器栈模拟即可,或者,由于表达式不包含括号,那么*和/的优先级别比较高,可以先做这两个运算,然后再最后做一次运算。
代码是以前写的,比较丑,大家谅解。
是根据第二种方法写的。
#include<stdio.h>int a[1000];char b[1000];int main(){while(scanf("%d",&a[1])){int i,j,x=2,y=1;while(scanf("%c",&b[y])&&b[y]!=10) {scanf("%c%c",&b[y+1],&b[y+2]);y=y+3;scanf("%d",&a[x]);x++;}if(a[1]==0&&b[1]==10)break;int flag=0,flag1=0,flag2=0;double s=0.0,t=0;if(b[y-2]=='*'||b[y-2]=='/')flag1=1;for(i=2;i<y;i=i+3){if(flag&&b[i]!='*'&&b[i]!='/'){a[(i+1)/3]=0;}else if(flag&&b[i]=='*'&&i!=2){t=t*a[(i+1)/3+1];a[(i+1)/3]=0;b[i]='+';continue;}else if(flag&&b[i]=='/'&&i!=2){t=t/a[(i+1)/3+1];a[(i+1)/3]=0;b[i]='+';continue;}if(b[i]=='*'){if(b[i-3]=='-')flag2=1;t=1.0*a[(i+1)/3]*a[(i+1)/3+1];flag=1;b[i]='+';a[(i+1)/3]=0;}else if(b[i]=='/'){if(b[i-3]=='-')flag2=1;t=1.0*a[(i+1)/3]/a[(i+1)/3+1];flag=1;b[i]='+';a[(i+1)/3]=0;}else{if(flag2)s=s-t;elses=s+t;t=0;flag=0;flag2=0;}}if(flag1)a[(y-1)/3+1]=0;if(flag){if(flag2)s=s-t;elses=s+t;}s=s+a[1];for(i=2;i<y;i=i+3){if(b[i]=='+')s=s+a[(i+1)/3+1];else if(b[i]=='-')s=s-a[(i+1)/3+1];}printf("%.2lf\n",s);}return 0;}C.小顶堆的应用。
每次取最小的两个元素,相加,然后再放回堆内,最后当堆剩余一个元素的时候,退出。
#include <cstdio>#include <string>#include <queue>#include <algorithm>#include <iostream>using namespace std;priority_queue<int, vector<int>, greater<int> > Q;int main(){int n;while(cin>>n){int i, a, b, ans;for(i = 0; i < n; ++i){cin>>a;Q.push(a);}ans = 0;while(Q.size() != 1){a = Q.top();Q.pop();b = Q.top();Q.pop();ans = ans + a + b;a = a + b;Q.push(a);}printf("%d\n", ans);Q.pop();}return 0;}D.二分枚举答案(O(nlogn))或者胡搞(个人感觉是贪心O(n))(1)答案的最小长度是P的长度,最大长度是S的长度,那么二分长度,然后二分的结果进行检查,是否满足条件。
#include <iostream>#include <cstdio>#include <cstring>using namespace std;char a[100005], b[100005];int PHash[11], SHash[11];bool OK(){int tt = 0;int i;for(i = 0; i < 10; ++i){if(PHash[i] && PHash[i] >= SHash[i]){tt += (PHash[i] - SHash[i]);}}if(tt <= SHash[10]){return 1;}return 0;}int main(){while(scanf("%s %s", a, b) != EOF){int i, j;int lenS, lenP;lenS = strlen(a);lenP = strlen(b);if(lenS < lenP){puts("0");continue;}memset(PHash, 0, sizeof(PHash));i = 0;while(b[i]){PHash[b[i++] - '0']++;}int s, e, mid;int ans = -1;s = lenP;e = lenS;while(s <= e){mid = (s + e) / 2;memset(SHash, 0, sizeof(SHash));for(i = 0; i < mid; ++i){if(a[i] == '*'){SHash[10]++;}else{SHash[a[i] - '0']++;}}if(OK()){if(ans > mid || ans == -1){ans = mid;}e = mid - 1;continue;}for(;a[i]; ++i){if(a[i] == '*'){SHash[10]++;}else{SHash[a[i] - '0']++;}if(a[i - mid] == '*'){SHash[10]--;}else{SHash[a[i - mid] - '0']--;}if(OK()){if(ans > mid || ans == -1){ans = mid;}e = mid - 1;break;}}if(!a[i]){s = mid + 1;}}if(ans == -1){ans = 0;}printf("%d\n", ans);}return 0;}(2)直接贪心or双指针。
先从第一个元素开始找,找到以第一个元素开始的串满足条件,然后再去掉前面的元素。
#include<iostream>#include<stdio.h>#include<algorithm>#include<string.h>#include<set>#include<string>using namespace std;char inS[100002],inP[100002];int hash[10],havebak[10];bool ok(int num){int i,tmp=0;for(i=0;i<10;i++){//if(havebak[i]>hash[i])// return false;if(havebak[i]<hash[i]){tmp+=hash[i]-havebak[i];}}if(num==tmp)return true;return false;}int main(){int ls,lp,i,j,ans,st,en;while(~scanf("%s%s",inS,inP)){lp=strlen(inP);ls=strlen(inS);if(lp>ls){puts("0");continue;}memset(hash,0,sizeof(hash));memset(havebak,0,sizeof(havebak));i=0;while(inP[i]){hash[inP[i++]-'0']++;}ans=100004;j=0;st=en=0;while(st<=en&&en<ls){if(inS[en]=='*')j++;else havebak[inS[en]-'0']++;while(ok(j)){if(ans>en-st+1)ans=en-st+1;if(inS[st]=='\0')break;if(inS[st]=='*')j--;else havebak[inS[st]-'0']--;st++;}en++;}if(ans==100004)printf("0\n");elseprintf("%d\n",ans);}}。