信息学奥赛初赛天天练-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.mfbz.cn/a/762553.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

汽车内饰塑料件光照老化实验箱

塑料件光照老化实验箱概述 塑料件光照老化实验箱&#xff0c;又称为氙灯老化试验箱&#xff0c;是一种模拟自然光照条件下塑料材料老化情况的实验设备。它通过内置的氙灯或其他光源&#xff0c;产生接近自然光的紫外线辐射&#xff0c;以此来加速塑料及其他材料的光老化过程。…

进程,线程,虚拟内存,交换技术

参考资料&#xff1a; 参考视频1https://www.bilibili.com/video/BV1Hs421M78w/?spm_id_from333.999.0.0&vd_source97411b9a8288d7869f5363f72b0d7613 参考视频2https://www.bilibili.com/video/BV1jE411W7e8/?spm_id_from333.337.search-card.all.click&vd_source…

【创建者模式-建造者模式】

概要 将一个复杂对象的构建与表示分离&#xff0c;使得同样的构建过程可以创建不同的表示。 建造者模式包含以下角色 抽象建造者类&#xff08;Builder&#xff09;&#xff1a;这个接口规定要实现复杂对象的那些部分的创建&#xff0c;并不涉及具体的部件对象的创建。具体建…

使用explain优化慢查询的业务场景分析

问&#xff1a;你最害怕的事情是什么&#xff1f;答&#xff1a;搓澡问&#xff1a;为什么&#xff1f;答&#xff1a;因为有些人一旦错过&#xff0c;就不在了 Explain 这个词在不同的上下文中有不同的含义。在数据库查询优化的上下文中&#xff0c;“EXPLAIN” 是一个常用的 …

基于PHP的初中数学题库管理系统

有需要请加文章底部Q哦 可远程调试 基于PHP的初中数学题库管理系统 一 介绍 此初中数学题库管理系统基于原生PHP开发&#xff0c;数据库mysql&#xff0c;系统角色分为学生&#xff0c;教师和管理员。(附带参考设计文档) 技术栈&#xff1a;phpmysqlphpstudyvscode 二 功能 …

YOLOv10改进教程|C2f-CIB加入注意力机制

一、 导读 论文链接&#xff1a;https://arxiv.org/abs/2311.11587 代码链接&#xff1a;GitHub - CV-ZhangXin/AKConv YOLOv10训练、验证及推理教程 二、 C2f-CIB加入注意力机制 2.1 复制代码 打开ultralytics->nn->modules->block.py文件&#xff0c;复制SE注意力机…

Android 大话binder通信

戳蓝字“牛晓伟”关注我哦&#xff01; 用心坚持输出易读、有趣、有深度、高质量、体系化的技术文章 由于 Android 大话binder通信(上) 和 Android 大话binder通信(下) 分为两篇阅读体验不好&#xff0c;顾合并为一篇。 本文摘要 用故事的方式把binder通信的整个过程都描述…

分享一个在 WinForm 桌面程序中使用进度条展示报表处理进度的例子,提升用户体验

前言 在有些比较消耗时间的业务场景中&#xff0c;比如生成报表等&#xff0c;如果没有在操作的过程中向用户反馈操作进度&#xff0c;会让用户以为程序 “死” 掉了&#xff0c;用户体验非常不好。 WinForm 桌面程序项目与 Console 项目不一样&#xff0c;如果 Console 项目…

C++ initializer_list类型推导

目录 initializer_list C自动类型推断 auto typeid decltype initializer_list<T> C支持统一初始化{ }&#xff0c;出现了一个新的类型initializer_list<T>&#xff0c;一切类型都可以用列表初始化。提供了一种更加灵活、安全和明确的方式来初始化对象。 class…

MIT6.s081 2021 Lab Page tables

Speed up system calls 思路 题目要求在每个进程初始化时为它的页表插入一个页表项&#xff0c;内核通过这样预先缓存页表项的操作&#xff0c;来加速特定系统调用的执行速度。 由于前不久刚过完一遍《OSTEP》&#xff0c;因此我认为自己对页表机制还算比较熟悉&#xff0c;…

Open AI Stream Completion Set Variable Inside Function PHP With Openai-php SDK

题意&#xff1a;使用 OpenAI 的 PHP SDK&#xff08;例如 openai-php&#xff09;来在函数内部设置和完成一个流&#xff08;stream&#xff09;相关的变量 问题背景&#xff1a; How to set variable inside this openai-php sdk function in stream completion ? I am usi…

【笔记】手工部署之linux中开放已安装的mysql与tomcat端口

在需要打包的springboot项目中输入mvn clean package 在target下面获得jar包 进入linux中你想要该jar包存在的位置 将jar包上传至linux中 此时在浏览器中输入linux的ip地址&#xff1a;端口号/mapping路径为404 故&#xff1a; 在linux中另开一个标签页 检查mysql和tomcat已…

JavaFX布局-BorderPane

JavaFX布局-BorderPane 实现方式Java实现FXML实现 综合案例 将容器空间分成五个区域&#xff1a;顶部&#xff08;Top&#xff09;、底部&#xff08;Bottom&#xff09;、左侧&#xff08;Left&#xff09;、右侧&#xff08;Right&#xff09;和中心&#xff08;Center&#…

Java案例找素数(三种方法)

目录 一&#xff1a;问题&#xff1a; 二&#xff1a;思路分析&#xff1a; 三&#xff1a;具体代码&#xff1a; 四&#xff1a;运行结果&#xff1a; 一&#xff1a;问题&#xff1a; 二&#xff1a;思路分析&#xff1a; 三&#xff1a;具体代码&#xff1a; Ⅰ&#xf…

03 _ 类型基础(2):动态类型与静态类型

静态类型语言与动态类型语言 通俗定义 静态类型语言&#xff1a;在编译 阶段确定所有变量的类型 动态类型语言&#xff1a;在执行阶段确定所有变量的类型 Javascript 与 C 对比 静态类型与动态类型对比 其他定义 强类型语言&#xff1a;不允许程序在发生错误后继续执行 语…

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

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

视频号视频怎么下载保存到手机,视频号视频如何下载到电脑本地

在数字化浪潮的推动下&#xff0c;视频号成为了我们获取信息、分享生活的重要平台。但有时候&#xff0c;我们遇到一些精彩的内容&#xff0c;想要保存下来以便日后观看&#xff0c;却发现视频号并不提供直接的下载功能。下面我就来为大家详细介绍视频号视频下载的方法&#xf…

Datax快速使用之牛刀小试

前言 一次我发现业务他们在用 datax数据同步工具&#xff0c;我尤记得曾经 19 年使用过&#xff0c;并且基于当时的版本还修复了个 BUG并且做了数据同步管道的集成开发。没想到时间过的飞快&#xff0c;业务方基于海豚调度 2.0.6 的版本中有在使用&#xff0c;由于业务方还没有…

大促前夕即高点,综合电商平台的“稀缺”魔法正在消失?

新一期618大促早已结束良久了&#xff0c;但似乎其产生的余韵却仍旧未消散。 从最直观的资本市场走势来看&#xff0c;自这一波618大促陆续开展之后&#xff0c;包括京东、阿里巴巴、拼多多等港美股股价就一改此前的上行态势&#xff0c;持续下滑至今。 事实上&#xff0c;早…