第四套CCF信息学奥赛c++ CSP-J认证初级组 中小学信奥赛入门组初赛考前模拟冲刺题(完善程序题)

第四套中小学信息学奥赛CSP-J考前冲刺题

三、完善程序题

第一题 田忌赛马

田忌赛马,田忌每赢一次齐王的马就得200金,,当然输了就扣200金币,平局则金币数
不变。

#include<iostream>
using namespace std;
int main(){
	int n;
	while(cin>>n&&n!=0){
		int tj[1001],king[1001],count=0;
		int tj_min=0,tj_max=n-1;
		int king_min=0,king_max=n-1;
		for(int i=0;i<n;i++)cin>>tj[i];
		for(int i=0;i<n;i++)cin>>king[i];
		sort(tj,tj+n);
		sort(king,king+n);
		while(n--){
			if(tj[ ①]>king[ ② ]){
				count++;
				tj_max--;
				king_max--;
			}
			else if (tj[ ③ ]<king[ ④ ]){
				count--;
				tj_min++;
				king_max--;
			}
			else
			{
				if(tj[tj_min]>king[king_min]){
					count++;
					__⑤__;
					__⑥__;
				}
				else{
					if(__⑦__)
						count--;
					tj_min++;
					__⑧__;
				}
			}
		}
		cout<<count*200<<endl;
	}
}

程序分析:此程序实现了田忌赛马的计分规则。

  • 游戏的规则如下: 田忌和国王赛马,它们之间进行对战。
  • 每人有n个分数。 分数是由输入的n个整数数组表示的。输入数组tj表示田忌的分数,输入数组king表示国王的分数。 玩家的分数按照从小到大排序。
  • 每轮对战,比较tj数组和king数组中的最大值。如果tj的最大值比king的最大值大,tj获得一分,并将tj数组和king数组中对应的最大值删除。
  • 如果tj的最大值比king的最大值小,tj失去一分,并将tj数组中最小的值删除,king数组中的最大值删除。
  • 如果tj的最大值和king的最大值相等,判断tj的最小值和king的最小值的关系。
  • 如果tj的最小值比king的最小值大,tj获得一分,并将tj数组中最小的值和king数组中最小的值删除。
  • 如果tj的最小值比king的最小值小,tj失去一分,并将tj数组中最小的值删除,king数组中最大的值删除。
  • 最终得分是tj获得的分数乘以200。 当n为0时,游戏结束。

单选题

①处和②处应该填

A. tj_max 和 king_max
B. tj_min 和 king_max
C. tj_min 和 king_min
D. tj_max 和 king_min

答案:A

答案分析:从程序分析中可以得知此处应该是A

③处和④处应该填

A. tj_max 和 king_max
B. tj_min 和 king_min
C. tj_min 和 king_max
D. tj_max 和 king_min

答案:C

答案分析:从程序分析中可以得知此处应该是C

⑤处和⑥处应该填

A. lj_min--和 king_min++
B. tj_max++和 king_min++
C. tj_min++和 king_min++
D. lj_max++和 king_min--

答案:C

答案分析:从程序分析中可以得知此处应该是C

⑦处应该填

A. tj[ tj_min ]<king[ king_max]
B. tj[ tj_max]<king[ king_max]
C. j[ tj_min]>king[ king_max]
D. tj[ tj_min]>king[ king_min]

答案:A

答案分析:从程序分析中可以得知此处应该是A

⑧处应该填

A. king_max--
B. king_max++
C. king_min--
D. king_min++

答案:A

答案分析:从程序分析中可以得知此处应该是A

第二题 寻路问题

N*N矩阵,其中0是表示可以走的,1表示无法走,矩阵由二维数组表示,左上角角是人口,右下角是出口,只能横着走和竖着走,要求找出最短路径。

#include<iostream>
using namespace std;
int mymax=10000;
int f[4][2]={{-1,0},{1,0},{0,-1},{0,1}};
int a[20][20],v[20][20],v1[20][20];
int l=1;
int n;//矩阵的规模
bool check(int x1,int y1){
	if(x1<0 ||x1>=n ||__①__)return false;
	if(a[x1][y1]==1 ||__②__)return false;
	return true;
}
void dfs(int x,int y){
	if(x==n-1 && y==n-1){
		if(l<mymax){
			mymax=l;
			memcpy(v1,v,sizeof(v1));
		}
		return;
	}
	for(int k=0;k<4;k++){
		int x1,y1;
		x1=x+__③__;
		y1=y+__④__;
		if(check(x1,y1)){
			__⑤__;
			__⑥__;
			dfs(x1,y1);
			__⑦__;
			v[x1][y1]=0;
		}
	}
}
int main(){
	cin>>n;
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++)
			cin>>a[i][j];
	}
	dfs(0,0);
	int d=v1[n-1][n-1];
	int x=n-1,y=n-1;
	int k;
	int qn[400][2];
	qn[0][0]=n-1;
	qn[0][1]=n-1;
	for(k=1;;k++){
		x=x-f[d][0];
		y=y-f[d][1];
		qn[k][0]=x;
		qn[k][1]=y;
		d=v1[x][y];
		if(x==0&&y==0)break;
	}
	for(int i=k;i>=0;i--)
		cout<<__⑧__<<","<<__⑨__<<endl;
	return 0;
}

程序分析:此程序通过深度优先搜索算法,解决了一个迷宫问题。

  • 程序读取用户输入的矩阵规模n,然后读取一个n*n的矩阵,其中1表示障碍物,0表示可行的路径。
  • 程序从(0,0)开始搜索,寻找一条从起点到终点(n-1,n-1)的路径,要求路径的长度最小。
  • 程序中使用一个4*2的数组f来表示移动的方向,包括上、下、左、右四个方向。
  • 使用一个二维数组a来表示迷宫的矩阵,数组v用来标记已经访问过的路径,数组v1用来记录最短路径。
  • 变量l表示当前路径的长度,mymax用来记录最短路径的长度。
  • check函数用来判断当前位置是否可行。
  • 程序中的dfs函数是递归的,它从当前位置开始,按照四个方向进行搜索。如果当前位置是终点,且路径长度小于最短路径长度,则更新最短路径长度和最短路径数组。否则,继续向下一步搜索。
  • 在递归的过程中,l和v数组会相应地进行更新。在搜索结束后,根据v1数组中的记录,从终点开始逆向输出最短路径上的所有点。输出的顺序是从终点到起点。
  • 总的来说,该程序利用深度优先搜索算法,通过递归的方式搜索迷宫中的所有可行路径,找到最短路径,并输出

单选题

①处和②处应该填

A. y1<=0lly1>n 和 v[x1][y1]>0
B. y1<0lly1>=n 和 v[x1][y1]>0
C. yl>0&&y1<=n 和 v[x1][y1]>0
D. y1>0&&y1<n 和 v[x1][y1]>0

答案:B

答案分析:从程序分析中可以得知①处是判断是否越界,②处是判断是否还有其它方向可以走,答案B

③处和④处应该填

A. f[k][0]和 f[k][1]
B. f[k][1]和 f[k][0]
C. f[0][k]和{[1][k]
D. f[1][k]和 f[0][k]

答案:A

答案分析:从程序分析中可以得知此处应该是获取下一个路径位置,答案A

⑤处应该填

A. v[x1][y1]=k+1;
B. v[x1][y1]=k;
C. v[x][y]=k;
D. v[x][y]=k+1;

答案:B

答案分析:从程序分析中可以得知此处应该是记录访问过的点,答案B

⑥处和⑦处应该填

A. l++和l--
B.k++和k--
C.x1++和x1--
D. y1++和y1--

答案:A

答案分析:从程序分析中可以得知此处应该是深度搜索标记和回溯,答案A

⑧处和⑨处应该填

A. qn[i][1]和 qn[i][2]
B. qn[i][0]和 qn[i][1]
C. qn[1][i]和 qn[2][i]
D. qn[0][i]和 qn[1][i]

答案:B

答案分析:从程序分析中可以得知此处应该是输出最短路径的终点和起点,答案B

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

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

相关文章

ARM系列 -- 虚拟化(二)

上一篇介绍了虚拟化和hypervisor的基本概念。为了配合虚拟化&#xff0c;ARM做了许多工作&#xff0c;首先是定义了四个异常等级&#xff08;Exception Level&#xff0c;简称EL&#xff09;。 前面介绍异常和特权的文章中有介绍&#xff0c;此处再啰嗦几句。每个异常级别都有…

css transform 会影响position 定位

比如通过以下代码.实现导航条上的每个li栏目,以不同的时间间隔,从上向下移动进来并显示 .my-navbar ul li {position: relative;opacity: 0;transform: translateY(-30px);transition: transform .6s cubic-bezier(.165,.84,.44,1),opacity .6s cubic-bezier(.165,.84,.44,1);…

Delphi 报错 Type androidx.collection.ArraySet is defined multiple times

Delphi 11 建立一个新的 Multi-Device Application 编译成app的时候报错 报错信息 [PAClient Error] Error: E7688 Unable to execute "E:\Program\Java\jdk1.8.0_301\bin\java.exe" -cp "e:\program\embarcadero\studio\22.0\bin\Android\r8-3.3.28.jar"…

【学习笔记】Vue3源码解析:第二部分-实现响应式(2)

课程地址&#xff1a;【已完结】全网最详细Vue3源码解析&#xff01;&#xff08;一行行带你手写Vue3源码&#xff09; 第二部分-实现响应式&#xff08;2&#xff09;&#xff1a;&#xff08;对应课程的第6-9节&#xff09; 第6节&#xff1a;《实现proxy代理以及解决重复代…

基于DPU和HADOS-RACE加速Spark 3.x

背景简介 Apache Spark&#xff08;下文简称Spark&#xff09;是一种开源集群计算引擎&#xff0c;支持批/流计算、SQL分析、机器学习、图计算等计算范式&#xff0c;以其强大的容错能力、可扩展性、函数式API、多语言支持&#xff08;SQL、Python、Java、Scala、R&#xff09…

SAP PO接口行项目json缺少中括号[]问题

PO接口小问题问题&#xff1a;如果需要同时传输DATA与ITEM&#xff0c;此处选择很重要&#xff0c;如果选择&#xff1a;HTTP Header ITEM将缺少[].需要注意 PO接口小问题 问题&#xff1a;如果需要同时传输DATA与ITEM&#xff0c;此处选择很重要&#xff0c;如果选择&#…

一次奇怪的事故:机器网络连接打满,导致服务不可用

业务背景 发生事故的业务系统是一个toB业务&#xff0c;业务是服务很多中小企业进行某项公共信息指标查询。系统特点:业务处理相对简单&#xff0c;但是流量大&#xff0c;且对请求响应要求较高&#xff1a; 业务请求峰值qps达50w&#xff0c;平时流量达20w左右。 请求响应时…

中国专家主导的ISO隐私计算国际标准立项,蚂蚁链摩斯参与编写

蚂蚁集团联合阿里巴巴、中科院信工所等单位联合推动的ISO/IEC 4922-3&#xff08;Information security -- Secure multiparty computation -- Part 3: Mechanisms based on garbled circuit &#xff09;正式通过ISO/IEC JTC 1 SC27的International standard (IS, 国际标准&am…

电机效率MAP图

直接使用contourf&#xff0c;需要有[X,Y] meshgrid(x,y), 并用Zf(X,Y)来生成Z轴。但是如果一开始Z轴坐标就不是x,y用函数生成的&#xff0c;而是有个默认的测试数据&#xff0c;又该如何用来画MAP图呢? clc;clear;clf; data_ECO []; //具体数值可以自己填&#xff0c;此处…

浅谈JAVA中锁的优化机制

引言&#xff1a; 从JDK1.6版本之后&#xff0c;synchronized本身也在不断优化锁的机制&#xff0c;有些情况下他并不会是一个很重量 级的锁了。优化机制包括自适应锁、自旋锁、锁消除、锁粗化、轻量级锁和偏向锁。 锁的状态从低到高依次为 无锁->偏向锁->轻量级锁->重…

uniapp的微信小程序授权头像昵称(最新版)

前面我出过两期博客关于小程序授权登录,利用php实现一个简单的小程序授权登录并存储授权用户信息到数据库的完整流程。无奈&#xff0c;小程序官方又整幺蛾子了。wx.getUserInfo接口收回&#xff0c;wx.getUserProfile接口也不让用。导致我的个人小程序&#xff1a;梦缘 的授权…

(每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理第12章 项目质量管理(一)

博主2023年11月通过了信息系统项目管理的考试&#xff0c;考试过程中发现考试的内容全部是教材中的内容&#xff0c;非常符合我学习的思路&#xff0c;因此博主想通过该平台把自己学习过程中的经验和教材博主认为重要的知识点分享给大家&#xff0c;希望更多的人能够通过考试&a…

系统攻防-WindowsLinux远程探针本地自检任意代码执行权限提升入口点

知识点&#xff1a; 1、远程漏扫-Nessus&Nexpose&Goby 2、本地漏扫(提权)-Wesng&Tiquan&Suggester 3、利用场景-远程利用&本地利用&利用条件 一、演示案例-操作系统-远程漏扫-Nessus&Nexpose&Goby Nessus Nessus号称是世界上最流行的漏洞扫描…

2024年江苏事业单位招聘报名指南

江苏事业单位目前已出的公告中&#xff0c;扬州和常州的报名时间相对较早&#xff0c;2月27日就开始报名了&#xff1b;其他大多在2月28日或3月1日起开始报名。 报名请移步<江苏人事考试网> 【报名时间】 2月28日9:00-3月4日16:00#图文万粉激励计划# 【资格初审】2月28…

Shiro反序列化漏洞原理代码分析(3)

最终POC transform链POC 由于我们要序列化的对象是PriorityQueue&#xff0c;所以我们就先实例化一个该对象 并且赋初值 PriorityQueue priorityQueue new PriorityQueue(2);priorityQueue.add(1);priorityQueue.add(2); 由于我们最后要调用的是ChainedTransformer对象的tr…

ADS-B Ground Receiver Radarcape

目录 Radarcape ADS-B MLAT Receiver Web Browser User Interface Radarcape Technical Data Radarcape Software Features Radarcape Basics Radarcape ADS-B MLAT Receiver Radarcape is a professional ADS-B receiver made for 24/7 operation. High performance rec…

C# TesseractOCR识别身份证号

https://github.com/tesseract-ocr/tessdata 新建控制台项目并添加包 Tesseract和Tesseract.Drawing 下载训练的模型 地址 代码实现 using Tesseract;var filePath "F:\\Desktop\\韦小宝.png"; var exePath AppDomain.CurrentDomain.BaseDirectory; var …

敏捷开发中如何写好用户故事?

什么是用户故事&#xff1f; 用户故事&#xff08;user story&#xff09;是一个用来确认用户和用户需求的简短描述&#xff0c;作为什么用户&#xff0c;希望如何&#xff0c;这样做的目的或者价值何在。用户故事在软件研发中又被描述为需求。用户故事通常的格式为&#xff1…

人工智能、机器学习和生成式人工智能之间有什么区别?

文 | BFT机器人 在这个数字的智能时代&#xff0c;大家对人工智能、机器学习和生成式人工智能这些名词字眼很熟悉&#xff0c;有些人或许对它们还有一些了解&#xff0c;但是当他们一起出现的时候&#xff0c;大家能够区别它们是什么意思吗&#xff1f;今天小编将带你们详细解…

Spring6学习技术|事务

学习材料 尚硅谷Spring零基础入门到进阶&#xff0c;一套搞定spring6全套视频教程&#xff08;源码级讲解&#xff09; 事务 什么是事务&#xff1f;好像是数据库部分的词&#xff0c;我自己的理解是对数据库进行的操作序列&#xff0c;要么一起完成&#xff0c;要么都不完成…
最新文章