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

 第十五届的题目在规定时间内做出了前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.mzph.cn/bicheng/69020.shtml

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

相关文章

Linux - 五种常见I/O模型

I/O操作 (输入/输出操作, Input/Output) 是指计算机与外部设备就行数据交互的过程. 什么是外部设备: 如键盘, 鼠标, 硬盘, 网卡等. 五种常见的 I/O 模型: 阻塞 I/O非阻塞 I/O信号驱动 I/OI/O 多路复用异步 I/O 阻塞 I/O 阻塞 I/O 的特点: 当用户发起 I/O 请求后, 进程/线程就…

问题修复记录:Linux docker 部署 dify,无法调用宿主机本地服务

重磅推荐专栏: 《大模型AIGC》 《课程大纲》 《知识星球》 本专栏致力于探索和讨论当今最前沿的技术趋势和应用领域,包括但不限于ChatGPT和Stable Diffusion等。我们将深入研究大型模型的开发和应用,以及与之相关的人工智能生成内容(AIGC)技术。通过深入的技术解析和实践经…

【UE5插件】RuntimeSpeechRecognizer

作用&#xff1a;语音识别 获取途径&#xff1a; Runtime Audio Importer | Fab 示例蓝图&#xff1a; 如何使用插件 |Georgy 开发文档 UE5.3 RuntimeSpeechRecognizer Streaming Example posted by gtreshchev | blueprintUE | PasteBin For Unreal Engine RuntimeSpeechReco…

2025年最新深度学习环境搭建:Win11+ cuDNN + CUDA + Pytorch +深度学习环境配置保姆级教程

本文目录 一、查看驱动版本1.1 查看显卡驱动1.2 显卡驱动和CUDA对应版本1.3 Pytorch和Python对应的版本1.4 Pytorch和CUDA对应的版本 二、安装CUDA三、安装cuDANN四、安装pytorch五、验证是否安装成功 一、查看驱动版本 1.1 查看显卡驱动 输入命令nvidia-smi可以查看对应的驱…

unity插件Excel转换Proto插件-ExcelToProtobufferTool

unity插件Excel转换Proto插件-ExcelToProtobufferTool **ExcelToProtobufTool 插件文档****1. 插件概述****2. 默认配置类&#xff1a;DefaultIProtoPathConfig****属性说明** **3. 自定义配置类****定义规则****示例代码** **4. 使用方式****4.1 默认路径****4.2 自定义路径**…

Web3 与数据隐私:如何让用户掌控个人信息

随着数字化时代的快速发展&#xff0c;互联网已经渗透到我们生活的方方面面&#xff0c;个人数据的收集与使用也变得越来越普遍。与此同时&#xff0c;数据隐私问题逐渐成为全球关注的焦点。传统的互联网平台通常将用户的数据存储在中心化的服务器上&#xff0c;这意味着平台拥…

HTML常用属性

HTML标签的常见属性包括许多不同的功能&#xff0c;可以为元素提供附加信息或控制元素的行为。以下是一些常见的属性及其解释&#xff1a; 1. src 描述&#xff1a;src&#xff08;source&#xff09;属性指定一个资源的路径&#xff0c;通常用于图像、音频、视频等标签。常见…

SQL Server 建立每日自动log备份的维护计划

SQLServer数据库可以使用维护计划完成数据库的自动备份&#xff0c;下面以在SQL Server 2012为例说明具体配置方法。 1.启动SQL Server Management Studio&#xff0c;在【对象资源管理器】窗格中选择数据库实例&#xff0c;然后依次选择【管理】→【维护计划】选项&#xff0…

基于 WPF 平台使用纯 C# 实现动态处理 json 字符串

一、引言 在当今的软件开发领域&#xff0c;数据的交换与存储变得愈发频繁&#xff0c;JSON&#xff08;JavaScript Object Notation&#xff09;作为一种轻量级的数据交换格式&#xff0c;以其简洁、易读、便于解析和生成的特点&#xff0c;被广泛应用于各种应用程序中。在 W…

C++—21、C++ 中构造函数Constructors

一、什么是构造函数&#xff1f; 构造函数是一个特殊的方法&#xff0c;它在类每次实例化创建对象的时侯自动调用&#xff0c;用于初始化对象。 构造函数的名字必须与类名完全相同&#xff0c;并且没有返回类型&#xff0c;甚至连void也没有。 构造函数的目的是确保对象在创…

Tensor 基本操作1 unsqueeze, squeeze, softmax | PyTorch 深度学习实战

本系列文章 GitHub Repo: https://github.com/hailiang-wang/pytorch-get-started 目录 创建 Tensor常用操作unsqueezesqueezeSoftmax代码1代码2代码3 argmaxitem 创建 Tensor 使用 Torch 接口创建 Tensor import torch参考&#xff1a;https://pytorch.org/tutorials/beginn…

C# HTTP/HTTPS 请求测试小工具

这是一个使用 C# 语言开发的实用小工具&#xff0c;旨在帮助用户轻松测试 HTTP 和 HTTPS 请求。 该工具可以发送各种 HTTP 和 HTTPS 请求&#xff0c;包括但不限于 GET、POST、PUT、DELETE 等常见的请求类型。通过简洁明了的界面或命令行操作&#xff0c;用户可以方便地输入目…

学习英语48个国际音标

学习英语48个国际音标 首先在b站刷到了雪梨老师的视频&#xff0c;感觉很好&#xff1a; 【雪梨老师】48个国际音标的标准发音速记口诀&#xff0c;零基础一定要收藏&#xff01;【建议收藏】_哔哩哔哩_bilibili 雪梨老师的视频朗朗上口&#xff0c;节奏感强&#xff0c;听起…

Kyligence AI 数据智能体:首批亮相神州数码 DC·AI 生态创新中心!

近日&#xff0c;跬智信息&#xff08;Kyligence&#xff09;长期合作伙伴神州数码&#xff0c;其 DCAI 生态创新中心正式启幕。 作为首批生态伙伴&#xff0c;Kyligence AI 数据智能体也正式入驻&#xff0c;在这里首次亮相。 Kyligence 是国内最早推出 AI 用数产品的厂商&a…

Vue基础(2)

19、组件之间传递数据 组件与组件之间不是完全独立的&#xff0c;而是有交集的&#xff0c;那就是组件与组 件之间是可以传递数据的 传递数据的解决方案就是 props ComponentA.vue <template><!-- 使用ComponentB组件&#xff0c;并传递title属性 --><h3>…

STM32_SD卡的SDIO通信_基础读写

本篇将使用CubeMXKeil, 创建一个SD卡读写的工程。 目录 一、SD卡要点速读 二、SDIO要点速读 三、SD卡座接线原理图 四、CubeMX新建工程 五、CubeMX 生成 SD卡的SDIO通信部分 六、Keil 编辑工程代码 七、实验效果 实现效果&#xff0c;如下图&#xff1a; 一、SD卡 速读…

【深度学习】2.视觉问题与得分函数

计算机视觉任务 可以通过神经网络搜索是什么类别的动物。 图像实际就是含有数值的三维矩阵。 像素值从0-255可以表示亮度递增的参数。数字越大&#xff0c;像素点越亮。 最后的3表示三个颜色通道&#xff0c;常见的如JPG、RGB等。 现实场景容易发生各种遮蔽现象。 计算机判断…

JVM面试题解,垃圾回收之“分代回收理论”剖析

一、什么是分代回收 我们会把堆内存中的对象间隔一段时间做一次GC&#xff08;即垃圾回收&#xff09;&#xff0c;但是堆内存很大一块&#xff0c;内存布局分为新生代和老年代、其对象的特点不一样&#xff0c;所以回收的策略也应该各不相同 对于“刚出生”的新对象&#xf…

从根源分析,调试,定位和解决MacOS ld: unsupported tapi file type ‘!tapi-tbd‘ in YAML file

你要是遇到同样错误&#xff0c;找一圈都没有解决&#xff0c;建议认真读一下本文&#xff0c;这个应该是最终极的解决办法&#xff0c;从原理上剖析了产生的原因&#xff0c;同时给出来了调试和定位的办法。 maccos使用brew安装了一个gcc14, 结果编译一个最简单的程序都报错&a…

单片机-STM32 IIC通信(OLED屏幕)(十一)

一、屏幕的分类 1、LED屏幕&#xff1a; 由无数个发光的LED灯珠按照一定的顺序排列而成&#xff0c;当需要显示内容的时候&#xff0c;点亮相关的LED灯即可&#xff0c;市场占有率很高&#xff0c;主要是用于户外&#xff0c;广告屏幕&#xff0c;成本低。 LED屏是一种用发光…