信息学奥赛初赛天天练-26-CSP-J2023基础题攻略,组合数学、高精度算法、计算机存储奥秘与操作系统实践

本文主要是介绍信息学奥赛初赛天天练-26-CSP-J2023基础题攻略,组合数学、高精度算法、计算机存储奥秘与操作系统实践,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

PDF文档公众号回复关键字:20240611
在这里插入图片描述

单项选择题(共15题,每题2分,共计30分:每题有且仅有一个正确选项)

6 小明在某一天中依次有七个空闲时间段,他想要选出至少一个空闲时间段来练习唱歌,但他希望任意两个练习的时间段之间都有至少两个空闲的时间段让他休息,则小明一共有( )种选择时间段的方案。

A 31

B 18

C 21

D 33

7 以下关于高精度运算的说法错误的是( )。

A 高精度计算主要是用来处理大整数或需要保留多位小数的运算。

B 大整数除以小整数的处理的步骤可以是,将被除数和除数对齐,从左到右逐位尝试将除数乘以某个数,通过减法得到新的被除数,并累加商。

C 高精度乘法的运算时间只与参与运算的两个整数中长度较长者的位数有关。

D 高精度加法运算的关键在于逐位相加并处理进位。

13 在计算机中,以下哪个选项描述的数据存储容量最小?( )

A. 字节(byte)

B. 比特(bit)

C. 字(word)

D. 千字节(kilobyte)

14 一个班级有10个男生和12个女生。如果要选出一个3人的小组,并且小组中必须至少包含1个女生,那么有多少种可能的组合?( )
A 1420
B 1770
C 1540
D 2200

15 以下哪个不是操作系统?( )

A Linux

B Windows

C Android

D HTML

2 相关知识点

1) 枚举法

枚举法是训练我们逻辑思维严密性的一种数学逻辑

在计算的过程中,我们一定要遵循枚举法的思路,把所有的情况,按照一定的顺序,一一列举出来

所以我们在学习枚举法的时候,一定要从小到大一一列举,不重不漏

例题

有红色和蓝色两种文具盒,小黄人要把8只相同的铅笔放到这两个文具盒中,每个文具盒至少放一支铅笔,那么一共有多少种不同的方法?

答案 7种

分析

红色和蓝色总共8只

每个文具盒子至少一只,固定红色最少1只,最多7只,从红色从小到大顺序枚举,可以做到不重不漏

总共有红色和蓝色2种,红色固定后,蓝色也固定了

红色  蓝色1    72    63    54    45    36    27    1

2) 组合

从n个不同元素中,任取m个元素,并成一组,叫做从n个 不同元素中取出m个元素的一个组合

从n个不同元素中选出来的m个元素,和顺序无关

例题

有10个人,规定相互通话一次,共通话多少次?

答案 45次

分析

2人通过,A与B通话1次,也是B与A通话1次,没有顺序区别

从10个里面任意选2人进行通话

C(10,2)=10*9/2=45

3) 高精度

高精度加法

1 按位相加,累加后数字大于9(有2位产生时),需要借助进位变量记录进位数

2 进位数参与下一位累加计算

高精度减法

按位相减 减后如果当前为数字小于0,需要向高位借1当10

高精度乘法

1 从个位开始,逐位相乘 ,本次相乘下标分别i,j 则 相乘结果保存下标i+j-1,可通过模拟2位相乘得出

2 逐位相乘时先不进位,此时结果数组中可能有2位数存在

3 相乘结束后,再逐位进位

4 2数相乘后的位数,最大是2数位数之和

// a b 数组为参与相乘的2个数  ans数组为相乘的结果
void mult(int a[], int b[], int ans[]){int i, j, len;//i j 分别代表2乘数当前参与相乘的位数for(i = 1; i <= a[0]; i++){for(j = 1; j <= b[0]; j++) {//相乘结果下标为i+j-1 用2位数简单模拟归纳ans[i+j-1] += a[i] * b[j];//相乘结果先不进位,后面统一进位}}len = a[0] + b[0];//2数相乘位数最大为2数位数之和for(i = 1; i < len; i++) {//循环进位ans[i + 1] += ans[i] / 10;//进位ans[i] %= 10;//当前只保留最后一位}while(ans[i] == 0 && i > 1)//计算结果的位数 - 从最高位开始,为0的位去除i--;ans[0] = i;//结果位数赋值给ans[0]
}

高精度除法-高精度除以单精度

1 从高位开始, 需要注意加上高位余数

2 当前位商保存ans 余数保留参与下一次除法运算

3 结果位数最大为被除数的位数 ,同时去除高位前导0

高精度代码参考

https://www.cnblogs.com/myeln/articles/14587929.html

3 思路分析

6 小明在某一天中依次有七个空闲时间段,他想要选出至少一个空闲时间段来练习唱歌,但他希望任意两个练习的时间段之间都有至少两个空闲的时间段让他休息,则小明一共有( )种选择时间段的方案。

A 31

B 18

C 21

D 33

答案 B

分析

分类枚举,7个空闲时间段,至少选1个并且2个时间段之间要间隔至少2个空闲时间段

选1个时间段来练习

7种

7个空闲时间段人选哪一个都行

选2个时间段来练习

10种
1和4,1和5,1和6,1和7

2和5,2和6,2和7

3和6,3和7

4和7

选3个时间段来练习

1种

1和4和7

把1个时间段,2个时间段和3个时间段相加

7+10+1=18 种

7 以下关于高精度运算的说法错误的是( )。

A 高精度计算主要是用来处理大整数或需要保留多位小数的运算。

B 大整数除以小整数的处理的步骤可以是,将被除数和除数对齐,从左到右逐位尝试将除数乘以某个数,通过减法得到新的被除数,并累加商。

C 高精度乘法的运算时间只与参与运算的两个整数中长度较长者的位数有关。

D 高精度加法运算的关键在于逐位相加并处理进位。

答案 C

分析

A 正确,高精度计算主要用于超出数据类型范围的大整数运算和小数位数过多超出数据类型存储范围的运算

B 正确,符合大整数除以小整数(高精度除以整数)的逻辑

C 错误,高精度乘法是其中一个数的每一位去和另外一个数的每一位相乘,是双重循环,运算时间和2个数的位数都有关

D 正确

13 在计算机中,以下哪个选项描述的数据存储容量最小?( )

A. 字节(byte)

B. 比特(bit)

C. 字(word)

D. 千字节(kilobyte)

答案 B

分析

比特是计算机中最基本的存储单元,它代表数字信息的最小单位。比特只能表示两种状态之一,通常用0和1来表示

字节(byte)是计算机存储容量的基本单位之一,通常用来表示数据的大小或存储空间的大小。一个字节由8个比特组成

千字节(kilobyte) 简称KB,1KB等于1024字节

字由若干个字节构成,字的位数叫做字长,不同档次的机器有不同的字长。例如一台8位机,它的1个字就等于1个字节,字长为8位。如果是一台16位机,那么,它的1个字就由2个字节构成,字长为16位。

所以数据存储容量最小的是比特,选B

14 一个班级有10个男生和12个女生。如果要选出一个3人的小组,并且小组中必须至少包含1个女生,那么有多少种可能的组合?( )
A 1420
B 1770
C 1540
D 2200
答案: A

分析

选出3人小组,至少包含1名女生,可以进行枚举
选1名女生,2名男生
C(12,1) * C(10,2) = 12 * 10 * 9 / 2 = 540 选2名女生,1名男生
C(12,2) * C(10,1) =12 * 11 / 2 * 10 =660选3名女生
C(12,3) = 12 * 11 * 10 /(3 * 2 * 1 ) = 220根据加法原理 
C(12,1) * C(10,2) + C(12,2) * C(10,1)+C(12,3) =540+660+220= 1420

15 以下哪个不是操作系统?( )

A Linux

B Windows

C Android

D HTML

答案: D

分析

Linux是操作系统,包括Web服务器、数据库服务器、文件服务器等。它也适用于软件开发、应用程序测试和系统管理,以及嵌入式系统如智能手机、网络路由器

Windows是操作系统,是由微软公司开发的一款操作系统,已经成为全球最流行的操作系统之一,广泛应用于个人电脑、服务器、移动设备等各种计算场景

Android 是一个由谷歌开发的操作系统,主要用于移动设备,特别是智能手机和平板电脑。它是基于Linux内核的开源系统,提供了丰富的API和支持开发者进行定制开发

HTML不是操作系统,超文本标记语言,HyperText Markup Language,是用于创建网页的标准标记语言

这篇关于信息学奥赛初赛天天练-26-CSP-J2023基础题攻略,组合数学、高精度算法、计算机存储奥秘与操作系统实践的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1052957

相关文章

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

异构存储(冷热数据分离)

异构存储主要解决不同的数据,存储在不同类型的硬盘中,达到最佳性能的问题。 异构存储Shell操作 (1)查看当前有哪些存储策略可以用 [lytfly@hadoop102 hadoop-3.1.4]$ hdfs storagepolicies -listPolicies (2)为指定路径(数据存储目录)设置指定的存储策略 hdfs storagepolicies -setStoragePo

HDFS—存储优化(纠删码)

纠删码原理 HDFS 默认情况下,一个文件有3个副本,这样提高了数据的可靠性,但也带来了2倍的冗余开销。 Hadoop3.x 引入了纠删码,采用计算的方式,可以节省约50%左右的存储空间。 此种方式节约了空间,但是会增加 cpu 的计算。 纠删码策略是给具体一个路径设置。所有往此路径下存储的文件,都会执行此策略。 默认只开启对 RS-6-3-1024k

康拓展开(hash算法中会用到)

康拓展开是一个全排列到一个自然数的双射(也就是某个全排列与某个自然数一一对应) 公式: X=a[n]*(n-1)!+a[n-1]*(n-2)!+...+a[i]*(i-1)!+...+a[1]*0! 其中,a[i]为整数,并且0<=a[i]<i,1<=i<=n。(a[i]在不同应用中的含义不同); 典型应用: 计算当前排列在所有由小到大全排列中的顺序,也就是说求当前排列是第

csu 1446 Problem J Modified LCS (扩展欧几里得算法的简单应用)

这是一道扩展欧几里得算法的简单应用题,这题是在湖南多校训练赛中队友ac的一道题,在比赛之后请教了队友,然后自己把它a掉 这也是自己独自做扩展欧几里得算法的题目 题意:把题意转变下就变成了:求d1*x - d2*y = f2 - f1的解,很明显用exgcd来解 下面介绍一下exgcd的一些知识点:求ax + by = c的解 一、首先求ax + by = gcd(a,b)的解 这个

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

电脑桌面文件删除了怎么找回来?别急,快速恢复攻略在此

在日常使用电脑的过程中,我们经常会遇到这样的情况:一不小心,桌面上的某个重要文件被删除了。这时,大多数人可能会感到惊慌失措,不知所措。 其实,不必过于担心,因为有很多方法可以帮助我们找回被删除的桌面文件。下面,就让我们一起来了解一下这些恢复桌面文件的方法吧。 一、使用撤销操作 如果我们刚刚删除了桌面上的文件,并且还没有进行其他操作,那么可以尝试使用撤销操作来恢复文件。在键盘上同时按下“C

hdu4869(逆元+求组合数)

//输入n,m,n表示翻牌的次数,m表示牌的数目,求经过n次操作后共有几种状态#include<iostream>#include<algorithm>#include<cstring>#include<stack>#include<queue>#include<set>#include<map>#include<stdio.h>#include<stdlib.h>#includ