信息学奥赛初赛天天练-91-CSP-S2023基础题3-编译命令、树的重心、拓扑排序、进制转换、R进制转十进制、十进制转R进制

PDF文档公众号回复关键字:20240917

2023 CSP-S 选择题

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

11 以下哪个命令,能将一个名为 main.cpp 的 C++ 源文件,编译并生成一个名为 main 的可执行文件?( )
A g++ -o main main.cpp
B g++ -o main.cpp main
C g++ main -o main.cpp
D g++ main.cpp -o main.cpp

12 在图论中,树的重心是树上的一个结点,以该结点为根时,使得其所有的子树中结点数最多的子树的结点数最少。一棵树可能有多个重心。请问下面哪种树一定只有一个重心?( )
A 4 个结点的树
B 6 个结点的树
C 7 个结点的树
D 8 个结点的树

13 如图是一张包含 6 个顶点的有向图,但顶点间不存在拓扑序。如果要删除其中一条边,使这 6 个顶点能进行拓扑排序,请问总共有多少条边可以作为候选的被删除边?( )

A 1
B 2
C 3
D 4

14
A 10
B 11
C 12
D 13

15 现在用如下代码来计算 x^n,其时间复杂度为( )

double quick_power(double x, unsigned n) {if (n == 0) return 1;if (n == 1) return x;return quick_power(x, n / 2)* quick_power(x, n / 2)* ((n & 1) ? x : 1);
}

A O(n)
B O(1)
C O(logn)
D O(nlogn)

2 相关知识点

1) 编译命令

g++ 是 GNU C++ 编译器,它是 GNU 编译器套件(GCC)的一部分。g++ 用于编译 C++ 程序,将源代码转换为可执行文件。它可以处理 C++ 标准库和其他 GNU 库,以及用户自定义的头文件和库

基本用法

要使用 g++ 编译一个 C++ 程序,你需要在命令行中输入以下命令:

g++ -o output_file source_file.cpp

其中,output_file 是生成的可执行文件名,source_file.cpp 是 C++ 源代码文件

g++ 是 GNU C++ 编译器,它是 GNU 编译器套件(GCC)的一部分。g++ 用于编译 C++ 程序,将源代码转换为可执行文件。它可以处理 C++ 标准库和其他 GNU 库,以及用户自定义的头文件和库。

基本用法

要使用 g++ 编译一个 C++ 程序,你需要在命令行中输入以下命令:

g++ -o output_file source_file.cpp

其中,output_file 是生成的可执行文件名,source_file.cpp 是 C++ 源代码文件。

编译选项

g++ 提供了许多编译选项,以便你可以控制编译过程。以下是一些常用选项:

-c:仅编译源代码,生成目标文件(.o 文件),不进行链接。
-I:指定头文件的搜索路径。
-L:指定库文件的搜索路径。
-l:链接指定的库文件。
-std:指定 C++ 标准版本,如 c++11c++14c++17 等。
-Wall:显示所有警告信息。
-Werror:将警告视为错误,即在出现警告时停止编译

2) 树的重心

树的重心是图论中的一个重要概念,指的是树中的一个顶点,当从这个顶点出发,将树分成若干个子树时,每个子树中的节点数都尽可能平衡。换句话说,树的重心是使得删除该点后得到的所有连通分量中,节点数最多的分量所含节点数最小的那个点

例如如下树

如果根节点为1,去除1节点后,节点最多的分量包括2个节点,具体如下下图,此时节点数最小

去除其他点,节点最多的连通分量会超过2,例如下图情况为3

一个树可能有个多个重心,奇数个节点的树只有1个重心,例如上面举例情况

3) 拓扑排序

拓扑排序是一个有向无环图(DAG)的所有顶点的线性序列

每个顶点只能出现一次,如果A到B节点有路径,且A节点在B节点的前面,那么B节点不能在A节点的前面

下图是一个有向无环图

拓扑排序方法

1从 DAG 图中选择入度为0的顶点(即没有节点指向该节点)并输出,并删除此节点
上图中A符合
输出A 并删除A后,变成下图

2从 DAG 图中选择入度为0的顶点(即没有节点指向该节点)并输出,并删除此节点
上图中B符合
输出B 并删除B后,变成下图

3从 DAG 图中选择入度为0的顶点(即没有节点指向该节点)并输出,并删除此节点
上图中C符合
输出C 并删除C后,变成下图

4从 DAG 图中选择入度为0的顶点(即没有节点指向该节点)并输出,并删除此节点
上图中D符合
输出D 并删除D后,只剩下节点E,此时输出节点E所以上图拓扑排序为ABCDE

4) 进制转换

R进制转十进制

按权展开,但要注意各个位的权,最低位(最右边)的权是0次方,权值为1

(11010110)2=1×2^7+1×2^6+0×2^5+1×2^4+0×2^3+1×2^2+1×2^1+0×2^0=(214)10

十进制整数转R进制

十进制小数转R进制

3 思路分析

11 以下哪个命令,能将一个名为 main.cpp 的 C++ 源文件,编译并生成一个名为 main 的可执行文件?( A )
A g++ -o main main.cpp
B g++ -o main.cpp main
C g++ main -o main.cpp
D g++ main.cpp -o main.cpp

根据g++编译语法
g++ 编译选项 目标文件 源文件
所以选A

12 在图论中,树的重心是树上的一个结点,以该结点为根时,使得其所有的子树中结点数最多的子树的结点数最少。一棵树可能有多个重心。请问下面哪种树一定只有一个重心?( C )
A 4 个结点的树
B 6 个结点的树
C 7 个结点的树
D 8 个结点的树

奇数个节点的树只有一个重心
所以选C

13 如图是一张包含 6 个顶点的有向图,但顶点间不存在拓扑序。如果要删除其中一条边,使这 6 个顶点能进行拓扑排序,请问总共有多少条边可以作为候选的被删除边?( C )

A 1
B 2
C 3
D 4

分析

根据拓扑排序的规则
1先删掉入度为0的点,此时2为入度为0的点
删除2后,没用入度为0的点,但允许删1条边,只有删除1条边满足也可以
2 此时有1 3 4这3个节点的入度为0,都可以删除
3 删除4->1这条边,此时入度为0的点为1,逐步删除1,3,4,5,6
4接2 ,删除1->3,此时入度为0的点为3,逐步删除3,4,1,5,6
5接2,删除,3->4,此时入度为0的点为4,逐步删除4,1,3,5,6
所以有3条边可以被删除,选C

14
( B )

A 10
B 11
C 12
D 13

分析

由题目可知
i=0时,n=16^0*x0
i=1时,n=16^0*x0+16^1*x1
i=2时,n=16^0*x0+16^1*x1+16^2*x2
和16进制转10进制计算规则相同
例如
(100)16=16^0*0+16^1*1+16^2*1=256f(0)=x0
f(1)=x0+x1
f(2)=x0+x1+x2
可以看出,f(n)是计算16进制中各位的数字和需要找一个数列,需要满足,例如如下图满足不动点为9
n2=f(1)=f(264)=9
n3=f(2)=f(9)=9
此种情况还有,108,117,126,135,144,153,162,171,180共9个

还有一种情况,需要2次后为9,分别有2种情况,19E和18F
共2种,和前面9种一共11种
所有选B

需要2次后为9,第1次为除了18,还有27,36,45,54,63,72,81
如果为27此时,数列前1个最小的16进制为9FF,而题目的范围(100)16~(1A0)超出范围
因此大于27的36,45也会超出范围

15 现在用如下代码来计算 x^n,其时间复杂度为( A )

double quick_power(double x, unsigned n) {if (n == 0) return 1;if (n == 1) return x;return quick_power(x, n / 2)* quick_power(x, n / 2)* ((n & 1) ? x : 1);
}

A O(n)
B O(1)
C O(logn)
D O(nlogn)

分析

递归排序时间复杂度有2部分组成
1递归的调用次数
2每次递归调用执行的时间复杂度
此题每次递归调用的时间复杂度为简单运算,可以看作1
递归调用次数,每次2分,并且分成2部分,所以总调用次数为n
所以时间复杂度为O(n),选A

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[Unity Demo]从零开始制作空洞骑士Hollow Knight第二集:通过InControl插件实现绑定玩家输入以及制作小骑士移动空闲动画

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、通过InControl插件实现绑定玩家输入二、制作小骑士移动和空闲动画 1.制作动画2.玩家移动和翻转图像3.状态机思想实现动画切换总结 前言 好久没来CSDN看看&…

利用JS数组根据数据生成柱形图

要求 <html> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document…

Python 基础 (标准库):datetime (基本日期和时间类型)

1. 官方文档 datetime --- 基本日期和时间类型 — Python 3.12.2 文档 tz — dateutil 3.9.0 documentation 2. 背景 2.1 处理时间数据的难点 计算机程序喜欢有序的、有规则的事件&#xff0c;但对于时间数据&#xff0c;其涉及的规则复杂且可能有变化&#xff0c;最典型例…

【homebrew安装】踩坑爬坑教程

homebrew官网&#xff0c;有安装教程提示&#xff0c;但是在实际安装时&#xff0c;由于待下载的包的尺寸过大&#xff0c;本地git缓存尺寸、超时时间的限制&#xff0c;会报如下错误&#xff1a; error: RPC failed; curl 92 HTTP/2 stream 5 was not closed cleanly&#xf…

2024永久激活版 Studio One 6 Pro for mac 音乐创作编辑软件 完美兼容

Studio One 6是一款功能强大的音乐制作软件&#xff0c;由PreSonus公司开发。它提供了全面的音频录制、编辑、混音和母带处理工具&#xff0c;适用于音乐制作人、音频工程师和创作人员。 Studio One 6拥有直观的用户界面&#xff0c;使用户能够快速而流畅地进行音乐创作。它采…

华为HarmonyOS地图服务 -- 如何实现地图呈现?-- HarmonyOS自学8

如何使用地图组件MapComponent和MapComponentController呈现地图&#xff0c;效果如下图所示。 MapComponent是地图组件&#xff0c;用于在您的页面中放置地图。MapComponentController是地图组件的主要功能入口类&#xff0c;用来操作地图&#xff0c;与地图有关的所有方法从此…

基于 onsemi NCV78343 NCV78964的汽车矩阵式大灯方案

一、方案描述 大联大世平集团针对汽车矩阵大灯&#xff0c;推出 基于 onsemi NCV78343 & NCV78964的汽车矩阵式大灯方案。 开发板搭载的主要器件有 onsemi 的 Matrix Controller NCV78343、LED Driver NCV78964、Motor Driver NCV70517、以及 NXP 的 MCU S32K344。 二、开…

【我的 PWN 学习手札】Fastbin Double Free

前言 Fastbin的Double Free实际上还是利用其特性产生UAF的效果&#xff0c;使得可以进行Fastbin Attack 一、Double Free double free&#xff0c;顾名思义&#xff0c;free两次。对于fastbin这种单链表的组织结构&#xff0c;会形成这样一个效果&#xff1a; 如果我们mallo…

记一次实战中对fastjson waf的绕过

最近遇到一个fastjson的站&#xff0c;很明显是有fastjson漏洞的&#xff0c;因为type这种字符&#xff0c;fastjson特征很明显的字符都被过滤了 于是开始了绕过之旅&#xff0c;顺便来学习一下如何waf 编码绕过 去网上搜索还是有绕过waf的文章&#xff0c;下面来分析一手&a…

分布式训练:(Pytorch)

分布式训练是将机器学习模型的训练过程分散到多个计算节点或设备上&#xff0c;以提高训练速度和效率&#xff0c;尤其是在处理大规模数据和模型时。分布式训练主要分为数据并行和模型并行两种主要策略&#xff1a; 1. 数据并行 (Data Parallelism) 数据并行是最常见的分布式…

【网络安全】逻辑漏洞之购买商品

未经授权,不得转载。 文章目录 正文正文 电子商务平台的核心功能,即购买商品功能。因为在这个场景下,任何功能错误都有可能对平台产生重大影响,特别是与商品价格和数量有关的问题。 将商品添加到购物车时拦截请求: 请求包的参数: 解码参数后,并没有发现价格相关的参数,…

Python(TensorFlow和PyTorch)及C++注意力网络导图

&#x1f3af;要点 谱图神经网络计算注意力分数对比图神经网络、卷积网络和图注意力网络药物靶标建模学习和预测相互作用腹侧和背侧皮质下结构手写字体字符序列文本识别组织病理学图像分析长短期记忆财务模式预测相关性生物医学图像特征学习和迭代纠正 Python注意力机制 对…

AE VM5000 Platform VarioMatch Match Network 手侧

AE VM5000 Platform VarioMatch Match Network 手侧

算法入门-贪心1

第八部分&#xff1a;贪心 409.最长回文串&#xff08;简单&#xff09; 给定一个包含大写字母和小写字母的字符串 s &#xff0c;返回通过这些字母构造成的最长的回文串 的长度。 在构造过程中&#xff0c;请注意 区分大小写 。比如 "Aa" 不能当做一个回文字符串…

Understanding the model of openAI 5 (1024 unit LSTM reinforcement learning)

题意&#xff1a;理解 OpenAI 5&#xff08;1024 单元 LSTM 强化学习&#xff09;的模型 问题背景&#xff1a; I recently came across openAI 5. I was curious to see how their model is built and understand it. I read in wikipedia that it "contains a single l…

从0-1 用AI做一个赚钱的小红书账号(不是广告不是广告)

大家好&#xff0c;我是胡广&#xff01;是不是被标题吸引过来的呢&#xff1f;是不是觉得自己天赋异禀&#xff0c;肯定是那万中无一的赚钱天才。哈哈哈&#xff0c;我告诉你&#xff0c;你我皆是牛马&#xff0c;不要老想着突然就成功了&#xff0c;一夜暴富了&#xff0c;瞬…

【SQL】百题计划:SQL对于空值的比较判断。

[SQL]百题计划 方法&#xff1a; 使用 <> (!) 和 IS NULL [Accepted] 想法 有的人也许会非常直观地想到如下解法。 SELECT name FROM customer WHERE referee_Id <> 2;然而&#xff0c;这个查询只会返回一个结果&#xff1a;Zach&#xff0c;尽管事实上有 4 个…

React js Router 路由 2, (把写过的几个 app 组合起来)

完整的项目&#xff0c;我已经上传了&#xff0c;资源链接. 起因&#xff0c; 目的: 每次都是新建一个 react 项目&#xff0c;有点繁琐。 刚刚学了路由&#xff0c;不如写一个 大一点的 app &#xff0c;把前面写过的几个 app, 都包含进去。 这部分感觉就像是&#xff0c; …

linux网络编程——UDP编程

写在前边 本文是B站up主韦东山的4_8-3.UDP编程示例_哔哩哔哩_bilibili视频的笔记&#xff0c;其中有些部分博主也没有理解&#xff0c;希望各位辩证的看。 UDP协议简介 UDP 是一个简单的面向数据报的运输层协议&#xff0c;在网络中用于处理数据包&#xff0c;是一种无连接的…

借助大模型将文档转换为视频

利用传统手段将文档内容转换为视频&#xff0c;比如根据文档内容录制一个视频&#xff0c;不仅需要投入大量的时间和精力&#xff0c;而且往往需要具备专业的视频编辑技能。使用大模型技术可以更加有效且智能化地解决上述问题。本实践方案旨在依托大语言模型&#xff08;Large …