第十五届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组

news2025/1/27 18:41:21

 第十五届的题目在规定时间内做出了前5道,还有2道找时间再磨一磨。现在把做的一些思路总结如下:

题1:握手问题

问题描述

小蓝组织了一场算法交流会议,总共有 50人参加了本次会议。在会议上,大家进行了握手交流。按照惯例他们每个人都要与除自己以外的其他所有人进行一次握手 (且仅有一次)。但有 7个人,这 7人彼此之间没有进行握手 (但这 7人与除这 7人以外的所有人进行了握手)。请问这些人之间一共进行了多少次握手?

注意 𝐴和 𝐵握手的同时也意味着 𝐵和 𝐴握手了,所以算作是一次握手。

答案提交

这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

第一题,一个简单的握手问题,用排列组合公式计算即可。

50 * 49 / 2 - 7 * 6 / 2 = 1204

由于数据比较小,所有直接手算比较快。填空题直接打印结果即可。

public class Main {
    public static void main(String[] args) {
        System.out.print("1204");
    }
}

结果是1204。

题2:小球反弹

问题描述

有一长方形,长为 343720 单位长度,宽为 233333单位长度。在其内部左上角顶点有一小球 (无视其体积),其初速度如图所示且保持运动速率不变,分解到长宽两个方向上的速率之比为 𝑑𝑥:𝑑𝑦=15:17。小球碰到长方形的边框时会发生反弹,每次反弹的入射角与反射角相等,因此小球会改变方向且保持速率不变(如果小球刚好射向角落,则按入射方向原路返回)。从小球出发到其第一次回到左上角顶点这段时间里,小球运动的路程为多少单位长度?答案四舍五入保留两位小数。

答案提交

这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个小数,在提交答案时只填写这个小数,填写多余的内容将无法得分。

本题抓住一个关键: 如果小球刚好射向角落,则按入射方向原路返回。也就是我们只要找到第一次碰到角落时就可以了,然后将距离*2即可。(这是第一种方法,还可以模拟小球运动轨迹,分x,y轴依次计算。)

public class Main {
    public static void main(String[] args) {
        long  t =1;
        long  x=343720,y=233333;
        while (t>=1){
          if((15*t)%x==0&&(17*t)%y==0){
            break;
          }
          t++;
      }
        double res = 2*Math.sqrt(15*t*15*t+17*t*17*t);
        System.out.printf("%.2f\n",res);
    }
}

结果是1100325199.77

题3:好数

问题描述

一个整数如果按从低位到高位的顺序,奇数位 (个位、百位、万位 ⋯⋯ ) 上的数字是奇数,偶数位 (十位、千位、十万位 ⋯⋯ ) 上的数字是偶数,我们就称之为 “好数”。

给定一个正整数 𝑁,请计算从 1 到 𝑁 一共有多少个好数。

输入格式

一个整数 𝑁。

输出格式

一个整数代表答案。

这是一道很常见的循环题。对于个位、十位、百位...这种位数的数字,通常将其转换成字符数组。方便遍历位数上的数字。

我第一次做的想法是,先看最低位,也就是数组最后一位的Index,判断其奇偶,再结合数组总长。如果数组总长是奇数,则最后一位Index为偶数,此时个位,百位...对应的index就是偶数。此情况下,再判断其中数的奇偶性。数组总长是偶数同理。

代码实现如下:

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int n =scan.nextInt();
        int cnt = 0;
        for(int i = 0 ;i<n;i++){
            String s = i+"";
            char[] res = s.toCharArray();
            cnt++;
            if(res.length%2==0){
                for(int j = res.length-1;j>=0;j--){
                    if(j%2!=0){
                        if(res[j]%2==0){
                            cnt--;
                            break;
                        }
                    }
                    if(j%2==0){
                        if(res[j]%2!=0){
                            cnt--;
                            break;
                        }
                    }
                }
            }
            if(res.length%2!=0){
                for(int j = res.length-1;j>=0;j--){
                    if(j%2==0){
                        if(res[j]%2==0){
                            cnt--;
                            break;
                        }
                    }
                    if(j%2!=0){
                        if(res[j]%2!=0){
                            cnt--;
                            break;
                        }
                    }
                }
            }
        }
        System.out.print(cnt);
    }
}

 题4:R格式

问题描述

小蓝最近在研究一种浮点数的表示方法:RR格式。对于一个大于 0 的浮点数 𝑑,可以用 RR 格式的整数来表示。给定一个转换参数 𝑛,将浮点数转换为 R格式整数的做法是:

  1. 将浮点数乘以 2^𝑛;

  2. 四舍五入到最接近的整数。

输入格式

一行输入一个整数 𝑛 和一个浮点数 𝑑,分别表示转换参数,和待转换的浮点数。

输出格式

输出一行表示答案:𝑑 用 R 格式表示出来的值。

 很典型的一道高精度问题,可以尝试位运算求解

import java.math.BigDecimal;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        BigDecimal d = sc.nextBigDecimal(); 
        BigDecimal m = new BigDecimal("2");
        System.out.println(m.pow(n).multiply(d).setScale(0, BigDecimal.ROUND_HALF_UP));
        //m的n次方乘d,设置小数位为0,四舍五入取整
    }
}

 题5:宝石组合

问题描述

在一个神秘的森林里,住着一个小精灵名叫小蓝。有一天,他偶然发现了一个隐藏在树洞里的宝藏,里面装满了闪烁着美丽光芒的宝石。这些宝石都有着不同的颜色和形状,但最引人注目的是它们各自独特的 “闪亮度” 属性。每颗宝石都有一个与生俱来的特殊能力,可以发出不同强度的闪光。小蓝共找到了 𝑁 枚宝石,第 𝑖 枚宝石的 “闪亮度” 属性值为 𝐻𝑖,小蓝将会从这 𝑁 枚宝石中选出三枚进行组合,组合之后的精美程度 𝑆可以用以下公式来衡量:

S = H_{a}H_{b}H_{c}\cdot \frac{LCM(H_{a},H_{b},H_{c})}{LCM(H_{a},H_{b})\cdot LCM(H_{a},H_{c})\cdot LCM(H_{b},H_{c})}

其中 𝐿𝐶𝑀 表示的是最小公倍数函数。

小蓝想要使得三枚宝石组合后的精美程度 𝑆尽可能的高,请你帮他找出精美程度最高的方案。如果存在多个方案 𝑆 值相同,优先选择按照 𝐻 值升序排列后字典序最小的方案。

输入格式

第一行包含一个整数 𝑁表示宝石个数。

第二行包含 𝑁 个整数表示 𝑁 个宝石的 “闪亮度”。

输出格式

输出一行包含三个整数表示满足条件的三枚宝石的 “闪亮度”。

 第一次自己写,对了60%的数据,后面参考了一下其他佬写的,就透彻了

import java.util.Arrays;
import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n=sc.nextInt();
        int a[]=new int[n];
        for(int i=0;i<n;i++){
        a[i]=sc.nextInt();
        }
        Arrays.sort(a);
  
        int s=a[n-3];
        int count=0;
        int res[]=new int[3];
        while(true) {
            count=0;
            for(int i=0;i<n;i++) {
                if(a[i]%s==0) {
                    res[count]=a[i];
                    count++;
                }
                if(count==3) {
                    break;
                }
            }
            s--;
            if(count==3) {
                break;
            }
            
        }
        System.out.println(res[0]+" "+res[1]+" "+res[2]);
        
    }
}

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

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

相关文章

Vue3 + TS 实现批量拖拽 文件夹和文件 组件封装

一、html 代码&#xff1a; 代码中的表格引入了 vxe-table 插件 <Tag /> 是自己封装的说明组件 表格列表这块我使用了插槽来增加扩展性&#xff0c;可根据自己需求&#xff0c;在组件外部做调整 <template><div class"dragUpload"><el-dial…

DX12 快速教程(4) —— 画钻石原矿

快速导航 新建项目 "004-DrawTexture"纹理贴图纹理采样纹理过滤邻近点采样双线性过滤Mipmap 多级渐远纹理三线性过滤各向异性过滤 纹理环绕LOD 细节层次 开始画钻石原矿吧加载纹理到内存中&#xff1a;LoadTexture什么是 WIC如何用 WIC 读取一帧图片获取图片格式并转…

LBS 开发微课堂|AI向导接口服务:重塑用户的出行体验

为了让广大开发者 更深入地了解 百度地图开放平台的 技术能力 轻松掌握满满的 技术干货 更加简单地接入 位置服务 我们特别推出了 “位置服务&#xff08;LBS&#xff09;开发微课堂” 系列技术案例 第六期的主题是 《AI向导接口服务的能力与接入方案》 随着地图应…

mysql 学习3 SQL语句--整体概述。SQL通用语法;DDL创建数据库,查看当前数据库是那个,删除数据库,使用数据库;查看当前数据库有哪些表

SQL通用语法 SQL语句分类 DDL data definition language : 用来创建数据库&#xff0c;创建表&#xff0c;创建表中的字段&#xff0c;创建索引。因此成为 数据定义语言 DML data manipulation language 有了数据库和表以及字段后&#xff0c;那么我们就需要给这个表中 添加数…

【Bug 记录】el-sub-menu 第一次进入默认不高亮

项目场景&#xff1a; 项目场景&#xff1a;el-sub-menu 第一次进入默认不高亮 问题描述 例如&#xff1a;sub-menu 的 index 后端默认传过来是 number&#xff0c;我们需要手动转为 string&#xff0c;否则会有警告&#xff0c;而且第一次进入 sub-menu 默认不高亮。 解决方…

深入探讨ncnn::Mat类——ncnn中的核心数据结构

最近在学习 ncnn 推理框架&#xff0c;下面整理了 ncnn::Mat 的使用方法。 ncnn作为一个高性能的神经网络推理框架&#xff0c;其核心数据结构ncnn::Mat在数据存储与处理上扮演了至关重要的角色。本文将从基础到高级&#xff0c;详细介绍ncnn::Mat类的各个方面&#xff0c;帮助…

npm:升级自身时报错:EBADENGINE

具体报错信息如下&#xff1a; 1.原因分析 npm和当前的node版本不兼容。 // 当前实际版本: Actual: {"npm":"10.2.4","node":"v20.11.0"}可以通过官网文档查看与自己 node 版本 兼容的是哪一版本的npm&#xff0c;相对应进行更新即可…

ipad和macbook同步zotero文献附件失败的解决办法

背景&#xff1a;我所有的文献及其附件pdf都是在台式机&#xff08;windows系统&#xff09;&#xff0c;想要把这些文献同步到云上&#xff0c;然后再从云上同步到平板和其他笔记本电脑比如macbook。文献同步虽已成功&#xff0c;但文献附件都无法打开。 平板报错如下&#xf…

【嵌入式】总结——Linux驱动开发(三)

鸽了半年&#xff0c;几乎全忘了&#xff0c;幸亏前面还有两篇总结。出于快速体验嵌入式linux的目的&#xff0c;本篇与前两篇一样&#xff0c;重点在于使用、快速体验&#xff0c;uboot、linux、根文件系统不作深入理解&#xff0c;能用就行。 重新梳理一下脉络&#xff0c;本…

15_业务系统基类

创建脚本 SystemRoot.cs 因为 业务系统基类的子类 会涉及资源加载服务层ResSvc.cs 和 音乐播放服务层AudioSvc.cs 所以在业务系统基类 提取引用资源加载服务层ResSvc.cs 和 音乐播放服务层AudioSvc.cs 并调用单例初始化 using UnityEngine; // 功能 : 业务系统基类 public c…

C语言-构造数据类型

1、构造数据类型 结构体、共用体、枚举。 2、结构体 1、结构体的定义 结构体是一个自定义的复合数据类型&#xff0c;它允许将不同类型的数据组合在一起。 struct 结构体名 {数据类型1 成员变量1;数据类型2 成员变量2;数据类型3 成员变量3;数据类型4 成员变量4; } 2、结构体变…

文档解析:PDF里的复杂表格、少线表格如何还原?

PDF中的复杂表格或少线表格还原通常需要借助专业的工具或在线服务&#xff0c;以下是一些可行的方法&#xff1a; 方法一&#xff1a;使用在线PDF转换工具 方法二&#xff1a;使用桌面PDF编辑软件 方法三&#xff1a;通过OCR技术提取表格 方法四&#xff1a;手动重建表格 …

【统计的思想】假设检验(二)

假设检验是根据人为设定的显著水平&#xff0c;对被测对象的总体质量特性进行统计推断的方法。 如果我们通过假设检验否定了零假设&#xff0c;只是说明在设定的显著水平下&#xff0c;零假设成立的概率比较小&#xff0c;并不是说零假设就肯定不成立。如果零假设事实上是成立…

汽车定速巡航

配备定速巡航功能的车型&#xff0c;一般在方向盘附近设有4~6个按键&#xff08;可能共用键位&#xff09;。 要设置定速巡航&#xff0c;不仅需要方向盘上的按键&#xff0c;还要油门配合。 设置的一般流程&#xff1a; 开关&#xff1a;类似步枪上的“保险”&#xff0c;按…

MacOS安装Docker battery-historian

文章目录 需求安装battery-historian实测配置国内源相关文章 需求 分析Android电池耗电情况、唤醒、doze状态等都要用battery-historian&#xff0c; 在 MacOS 上安装 battery-historian&#xff0c;可以使用 Docker 进行安装runcare/battery-historian:latest。装完不需要做任…

总线、UART、IIC、SPI

一图流 总线 概念 连接多个部件的信息传输线&#xff0c;是各部件共享的传输介质 类型 片内总线&#xff1a;连接处理器内核和外设的总线&#xff0c;在芯片内部 片外总线&#xff1a;连接芯片和其他芯片或者模块的总线 总线的通信 总线通信的方式 串行通信 数据按位顺序传…

大型齿轮箱健康监测与智能维护系列套件:测试台+故障诊断算法工具箱+齿轮箱智能维护系统平台+案例分析

大型齿轮箱健康监测与智能维护系列套件&#xff1a;测试台故障诊断算法工具箱齿轮箱智能维护系统平台案例分析 大型齿轮箱健康监测与智能维护系列套件&#xff1a;测试台定制、数据测试服务、算法工具箱与算法模型的定制研制服务&#xff0c;以及各类设备故障诊断与健康预诊系…

Yearning开源MySQL SQL审核平台

一款MYSQL SQL语句/查询审计工具&#xff0c;为DBA与开发人员使用. 本地部署&#xff0c;注重隐私&#xff0c;简单高效的MYSQL审计平台。 它可以通过流程审批&#xff0c;实现真实线上环境sql的审核和执行&#xff0c;还可以回滚执行&#xff0c;能够确保线上SQL更新的可靠性…

【MySQL — 数据库增删改查操作】深入解析MySQL的create insert 操作

数据库CRUD操作 1 CRUD简介 CURD是对数据库中的记录进行基本的增删改查操作: 2. Create 新增 语法 INSERT [INTO] table_name[(column [&#xff0c;column] ...)] VALUES(value_list)[&#xff0c;(value_list)] ... # value 后面的列的个数和类型&#xff0c;要和表结构匹配…

推箱子游戏

java小游戏2 一游戏介绍 二图像准备 墙、箱子、人、箱子目的地&#xff0c;人左边、人右边、人上边、人下边 三结构准备 地图是什么&#xff0c;我们把地图想象成一个网格&#xff0c;每个格子就是工人每次移动的步长&#xff0c;也是箱子移动的距离&#xff0c;设置一个二维数…