信息学奥赛初赛天天练-41-CSP-J2021基础题-n个数取最大、树的边数、递归、递推、深度优先搜索应用

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

在这里插入图片描述

2021 CSP-J 选择题

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

4.以比较作为基本运算,在N个数中找出最大数,最坏情况下所需要的最少比较次数为

A. N^2

B. N

C. N-1

D. N+1

6.对于有n个顶点、m条边的无向连通图(m>n),需要删掉( )条边才能使其成为一棵树

A. n-1

B. m-n

C. m-n-1

D. m-n+1

12.由 1,1,2,2,3这五个数字组成不同的三位数有( )种

A. 18

B. 15

C. 12

D. 24

13.考虑如下递归算法

solve(n)if n<=1 return 1 else if n>=5 return n*solve(n-2)else return n*solve(n-1)

则调用solve(7)得到的返回结果为( )

A. 105

B. 840

C. 210

D. 420

14.以a为起点,对右边的无向图进行深度优先遍历,则b、c、d、e四个点中有可能作为最后一个遍历的点的个数为( )

A. 1

B. 2

C. 3

D. 4

2 相关知识点

1) n个数取最大

3个数取最大,需比较2次

#include<bits/stdc++.h>
using namespace std;
/*3个数取最大 比较2次 
*/ 
int main(){int a,b,c ;scanf("%d%d%d",&a,&b,&c) ;if(b > a)a = b ;if(c > a)a = c ;printf("%d",a) ;return 0;
}
/*输入 1 2 3输出 3输入 9 5 10输出 10 
*/ 

n个数取最大,需比较n-1次

#include<bits/stdc++.h>
using namespace std;
/*n数进行比较,循环1~n-1,进行n-1次循环 
*/ 
int  n,a[10000];
int main(){scanf("%d",&n);for(int i=0;i<n;i++){scanf("%d",&a[i]);}for(int i=1;i<n;i++){if(a[0]<a[i]){a[0]=a[i];}}printf("%d",a[0]);return 0;
}
/*输入 4 5 9 10 8输出 10输入 3 9 5 10输出 10 
*/ 

2) 树的边数

树的边数是指树中所有边的数量。在非空树中,边的数量等于结点数量减1

3) 枚举算法

枚举算法是一种通过列举所有可能情况来求解问题的策略。它通常适用于问题规模较小且解空间明确、有限的情况。枚举算法的关键在于如何有效地遍历解空间,并在遍历过程中判断每个候选解是否满足问题的要求

枚举算法一般需要按一定规则进行分类,避免重复枚举或遗漏的情况

4) 递归、递推

递归

递归是一种解决问题的方法,它通过将问题分解为更小的子问题来解决。

一个递归函数会在其定义中直接或间接地调用自身

递归通常包括两个部分:基本情况(Base case)和递归步骤(Recursive step)。

基本情况是指当问题规模变得足够小时,可以直接得到解决方案的情况。

递推

递推是一种描述序列中项与项之间关系的方法。递推关系通常用于定义具有某种规律性的数列,如斐波那契数列

递推关系可以用一个公式或方程来表示,该公式或方程描述了序列中的每一项如何由前一项(或前几项)计算得出

递归和递推区别

递归是一种解决问题的方法,通过将问题分解为更小的子问题来解决,自上而下分解,通常会出现多次重复计算问题

递推是一种描述序列中项与项之间关系的方法,自底而上计算,避免重复计算

通过斐波那契数列演示区别

递归f(3)重复计算3次,如果数更大重复更多

递推计算是从最底层计算,计算上一层时使用前面的计算结果,所以f(3)只计算1次

5) 深度优先搜索

从某个特定顶点开始,尽可能深地搜索树的分支,直到达到叶子节点,然后回溯到前一个节点,继续搜索下一个分支,实现DFS时,通常使用堆栈数据结构来实现

3 思路分析

4.以比较作为基本运算,在N个数中找出最大数,最坏情况下所需要的最少比较次数为( C )

A. N^2

B. N

C. N-1

D. N+1

分析

比较作为基本运算,用第1个数做基准数,和第2个比较,然后保留最大的,逐一和后面的数进行比较

1和2,2和3,3和4,… n-1和n

最多为n-1次

6.对于有n个顶点、m条边的无向连通图(m>n),需要删掉( D )条边才能使其成为一棵树

A. n-1

B. m-n

C. m-n-1

D. m-n+1

分析

n个节点的树,有n-1条边

无向图有m条边,需要变成n-1条边

应删掉m-(n-1)=m-n+1

所以选D

12.由 1,1,2,2,3这五个数字组成不同的三位数有( A )种

A. 18

B. 15

C. 12

D. 24

分析

分类枚举

1有1 2 3这3个不同数字组成的3位数个数有A(3,3)=3 * 2 *1=6种

2有1 1 2 这3个数字组成的3位数 112 121 211 这3种

3有1 2 2 这3个数字组成的3位数 122 212 221 这3种

4有1 1 3 这3个数字组成的3位数 112 131 311 这3种

5有2 2 3 这3个数字组成的3位数 223 232 322 这3种

上述分5类枚举,根据加法原理

6+3+3+3+3=18

13.考虑如下递归算法

solve(n)if n<=1 return 1 else if n>=5 return n*solve(n-2)else return n*solve(n-1)

则调用solve(7)得到的返回结果为( C )

A. 105

B. 840

C. 210

D. 420

分析

递归从大到小计算会出现一些重复计算,可以从小到大递推得到solve(7)的值
solve(1)=1
solve(2)=n * solve(n-1)=2* solve(1)=2*1=2
solve(3)=n * solve(n-1)=3* solve(2)=3*2=6
solve(4)=n * solve(n-1)=4* solve(3)=4*6=24
solve(5)=n * solve(n-2)=5* solve(3)=5*6=30
solve(6)=n * solve(n-2)=6* solve(4)=6*24=144
solve(7)=n * solve(n-2)=7* solve(5)=7*30=210

14.以a为起点,对右边的无向图进行深度优先遍历,则b、c、d、e四个点中有可能作为最后一个遍历的点的个数为( B )

A. 1

B. 2

C. 3

D. 4

分析

从a点出发沿着一个分支节点尽可能深的搜索树的分支,直到达到叶子节点,然后回溯到前一个节点,继续搜索下一个分支
1 从a出发沿bdce一个分支搜索完所有节点,最后节点为e
2 从a出发沿ce搜索到叶子节点,回溯到c沿db搜结束,最后节点为b
深度优先搜索只有上述2种情况,可能作为最后节点的为e和b这2个节点
具体如下图

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

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

相关文章

我在中东做MCN,月赚10万美金

图片&#xff5c;Photo by Ben Koorengevel on Unsplash ©自象限原创 作者丨程心 在迪拜购物中心和世界最高建筑哈利法塔旁的主街上&#xff0c;徐晋已经“蹲”了三个小时&#xff0c;每当遇到穿着时髦的年轻男女&#xff0c;他都会上前询问&#xff0c;有没有意愿成为…

C语言部分复习笔记

1. 指针和数组 数组指针 和 指针数组 int* p1[10]; // 指针数组int (*p2)[10]; // 数组指针 因为 [] 的优先级比 * 高&#xff0c;p先和 [] 结合说明p是一个数组&#xff0c;p先和*结合说明p是一个指针 括号保证p先和*结合&#xff0c;说明p是一个指针变量&#xff0c;然后指…

Web2Code :网页理解和代码生成能力的评估框架

多模态大型语言模型&#xff08;MLLMs&#xff09;在过去几年中取得了爆炸性的增长。利用大型语言模型&#xff08;LLMs&#xff09;中丰富的常识知识&#xff0c;MLLMs在处理和推理各种模态&#xff08;如图像、视频和音频&#xff09;方面表现出色&#xff0c;涵盖了识别、推…

VuePress介绍

从本文开始&#xff0c;动手搭建自己的博客&#xff01;希望读者能跟着一起动手&#xff0c;这样才能真正掌握。 ‍ VuePress 是什么 VuePress 是由 Vue 作者带领团队开发的&#xff0c;非常火&#xff0c;使用的人很多&#xff1b;Vue 框架官网也是用了 VuePress 搭建的。即…

4PCS点云配准算法实现

4PCS点云配准算法的C实现如下&#xff1a; #include <iostream> #include <pcl/io/pcd_io.h> #include <pcl/point_types.h> #include <pcl/common/common.h> #include <pcl/common/distances.h> #include <pcl/common/transforms.h> #in…

php 通过vendor文件 生成还原最新的composer.json

起因&#xff1a;因为历史原因&#xff0c;在本项目中composer.json基本算废了&#xff0c;没法直接使用composer管理扩展&#xff0c;今天尝试修复一下composer.json。 历史文件&#xff0c;可以看出来已经很久没有维护了&#xff0c;我们主要是恢复require的信息 {"na…

基于CNN的股票预测方法【卷积神经网络】

基于机器学习方法的股票预测系列文章目录 一、基于强化学习DQN的股票预测【股票交易】 二、基于CNN的股票预测方法【卷积神经网络】 文章目录 基于机器学习方法的股票预测系列文章目录一、CNN建模原理二、模型搭建三、模型参数的选择&#xff08;1&#xff09;探究window_size…

下代iPhone或回归可拆卸电池,苹果这操作把我看傻了

刚度过一个愉快的周末&#xff0c;苹果又双叒叕摊上事儿了。 iPhone13 系列被曝扎堆电池鼓包了。 早在去年&#xff0c;就有 iPhone13 和 iPhone14 用户反馈过类似的问题&#xff0c;表示在手机仅仅使用了一年多的时间就出现了电池鼓包的情况&#xff0c;而且还把屏幕给撑起来了…

舞会无领导:一种树形动态规划的视角

没有上司的舞会 Ural 大学有 &#x1d441; 名职员&#xff0c;编号为1∼&#x1d441;。 他们的关系就像一棵以校长为根的树&#xff0c;父节点就是子节点的直接上司。 每个职员有一个快乐指数&#xff0c;用整数 &#x1d43b;&#x1d456; 给出&#xff0c;其中1≤&…

校园卡手机卡怎么注销?

校园手机卡的注销流程可以根据不同的运营商和具体情况有所不同&#xff0c;但一般来说&#xff0c;以下是注销校园手机卡的几种常见方式&#xff0c;我将以分点的方式详细解释&#xff1a; 一、线上注销&#xff08;通过手机APP或官方网站&#xff09; 下载并打开对应运营商的…

当年很多跑到美加澳写代码的人现在又移回香港?什么原因?

当年很多跑到美加澳写代码的人现在又移回香港&#xff1f;什么原因&#xff1f; 近年来&#xff0c;确实有部分曾经移民到美国、加拿大、澳大利亚等地的香港居民选择移回香港。这一现象与多种因素相关&#xff0c;主要可以归结为以下几点&#xff1a; 疫情后的环境变化&#…

【STM32】温湿度采集与OLED显示

一、任务要求 1. 学习I2C总线通信协议&#xff0c;使用STM32F103完成基于I2C协议的AHT20温湿度传感器的数据采集&#xff0c;并将采集的温度-湿度值通过串口输出。 任务要求&#xff1a; 1&#xff09;解释什么是“软件I2C”和“硬件I2C”&#xff1f;&#xff08;阅读野火配…

2025第13届常州国际工业装备博览会招商全面启动

常州智造 装备中国|2025第13届常州国际工业装备博览会招商全面启动 2025第13届常州国际工业装备博览会将于2025年4月11-13日在常州西太湖国际博览中心盛大举行&#xff01;目前&#xff0c;各项筹备工作正稳步推进。 60000平米的超大规模、800多家国内外工业装备制造名企将云集…

最细最有条理解析:事件循环(消息循环)是什么?进程与线程的定义、关系与差异

目录 事件循环&#xff1a;引入 一、浏览器的进程模型 1.1、什么是进程&#xff08;Process&#xff09; 1.2、什么是线程&#xff08;Thread&#xff09; 1.3、进程与线程之间的关系联系与区别 二、浏览器有哪些进程和线程 2.1、浏览器的主要进程 ①浏览器进程 ②网络…

ctfshow sqli-libs web561--web568

web561 ?id-1 or 1--?id-1 union select 1,2,3--?id-1 union select 1,(select group_concat(column_name) from information_schema.columns where table_nameflags),3-- Your Username is : id,flag4s?id-1 union select 1,(select group_concat(flag4s) from ctfshow.f…

扩展学习|风险评估和风险管理:回顾其基础上的最新进展

文献来源&#xff1a;[1]Aven, T. (2016). Risk assessment and risk management: Review of recent advances on their foundation. European journal of operational research, 253(1), 1-13. 文章简介&#xff1a;大约30-40年前&#xff0c;风险评估和管理被确立为一个科学领…

数据结构 - C/C++ - 链表

目录 结构特性 内存布局 结构样式 结构拓展 单链表 结构定义 节点关联 插入节点 删除节点 常见操作 双链表 环链表 结构容器 结构设计 结构特性 线性结构的存储方式 顺序存储 - 数组 链式存储 - 链表 线性结构的链式存储是通过任意的存储单元来存储线性…

技术分享:分布式数据库DNS服务器的架构思路

DNS是企业数字化转型的基石。伴随微服务或单元化部署的推广&#xff0c;许多用户也开始采用分布式数据库将原来的单体数据库集群服务架构拆分为大量分布式子服务集群&#xff0c;对应不同的微服务或服务单元。本文将从分布式数据库DNS服务器的架构需求、架构分析两方面入手&…

湖北大学2024年成人高考函授报名专升本市场营销专业介绍

在璀璨的学术殿堂中&#xff0c;湖北大学如同一颗璀璨的明珠&#xff0c;熠熠生辉。为了满足广大社会人士对于继续深造、提升自我、实现职业梦想的渴望&#xff0c;湖北大学特别开设了成人高等继续教育项目&#xff0c;为广大有志之士敞开了一扇通往知识殿堂的大门。 而今&…

【FFmpeg】av_write_frame函数

目录 1.av_write_frame1.1 写入pkt&#xff08;write_packets_common&#xff09;1.1.1 检查pkt的信息&#xff08;check_packet&#xff09;1.1.2 准备输入的pkt&#xff08;prepare_input_packet&#xff09;1.1.3 检查码流&#xff08;check_bitstream&#xff09;1.1.4 写入…