第十五届蓝桥杯大赛软件赛省赛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]);
        
    }
}

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

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

相关文章

OpenEuler学习笔记(四):OpenEuler与CentOS的区别在那里?

OpenEuler与CentOS的对比 一、基本信息 起源与背景&#xff1a; OpenEuler&#xff1a;由华为发起&#xff0c;后捐赠给开放原子开源基金会&#xff0c;旨在构建一个开放、多元化的云计算和边缘计算平台&#xff0c;以满足华为及其他企业的硬件和软件需求。CentOS&#xff1a;…

【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;要和表结构匹配…

苍穹外卖—订单模块

该模块分为地址表的增删改查、用户下单、订单支付三个部分。 第一部分地址表的增删改查无非就是对于单表的增删改查&#xff0c;较基础&#xff0c;因此直接导入代码。 地址表 一个用户可以有多个地址&#xff0c;同时有一个地址为默认地址。用户还可为地址添加例如&q…

从ChatGPT热潮看智算崛起

2025年1月7日&#xff0c;科智咨询发布《2025年IDC产业七大发展趋势》&#xff0c;其中提到“ChatGPT开启生成式AI热潮&#xff0c;智能算力需求暴涨&#xff0c;算力供给结构发生转变”。 【图片来源于网络&#xff0c;侵删】 为何会以ChatGPT发布为节点呢&#xff1f;咱们一起…

【Uniapp-Vue3】setTabBar设置TabBar和下拉刷新API

一、setTabBar设置 uni.setTabBarItem({ index:"需要修改第几个", text:"修改后的文字内容" }) 二、tabBar的隐藏和显式 // 隐藏tabBar uni.hideTabBar(); // 显示tabBar uni.showTabBar(); 三、为tabBar右上角添加文本 uni.setTabBarBadge({ index:"…

【express-generator】06-RESTFUL API设计(第二阶段)

前言&#xff1a; 前面我们学习了第一阶段的express-generator内容以及做了对应练习&#xff0c;现在我们正式开始第二阶段的学习以及练习。本篇介绍的内容是RESTFUL API设计。 第二阶段的大纲如下&#xff1a; RESTful API 设计&#xff1a; 学习如何设计符合 REST 原则的 …

Python 预训练:打通视觉与大语言模型应用壁垒——Python预训练视觉和大语言模型

大语言模型是一种由包含数百亿甚至更多参数的深度神经网络构建的语言模型&#xff0c;通常使用自监督学习方法通过大量无标签文本进行训练&#xff0c;是深度学习之后的又一大人工智能技术革命。 大语言模型的发展主要经历了基础模型阶段(2018 年到2021年)、能力探索阶段(2019年…

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

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

1.CSS的三大特性

css有三个非常重要的三个特性&#xff1a;层叠性、继承性、优先级 1.1 层叠性 想通选择器给设置想听的样式&#xff0c;此时一个样式就会覆盖&#xff08;层叠&#xff09;另一个冲突的样式。层叠性主要是解决样式冲突的问题。 <!DOCTYPE html> <html lang"en&…

使用Edge打开visio文件

使用Edge打开visio文件 打开Edge浏览器搜索‘vsdx edge’ 打开第一个搜索结果 Microsoft Support 根据上述打开的页面进行操作 第一步&#xff1a;安装Visio Viewer 第二步&#xff1a;添加注册表 桌面新增文本文件&#xff0c;将下面的内容放入新建文本中&#xff0c;修…

基于微信小程序的健身管理系统设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…

GPS信号生成:C/A码序列生成【MATLAB实现】

GPS C/A码序列生成【MATLAB实现】 在本文中&#xff0c;将简要介绍GPS C/A码及其生成原理&#xff0c;并且用MATLAB代码实现。 GPS信号与C/A码 GPS的信号主要有三类&#xff1a;载波&#xff08;carrier&#xff09;、测距码&#xff08;也可以说是伪随机噪声码&#xff0c;…

redis离线安装部署详解(包括一键启动)

像上文一样 因为在学习的过程中没有查到一个详细的离线部署方案 所以在自己学习之后想要自己写一个文章 希望可以帮助后续学习redis离线部署的朋友少走一线弯路 首先就是下载安装包 可以自己在本地下载再传到机器上&#xff08;通过xftp或lrzsz都可&#xff09; http://d…

Hadoop•搭建完全分布式集群

听说这里是目录哦 一、安装Hadoop&#x1f955;二、配置Hadoop系统环境变量&#x1f96e;三、验证Hadoop系统环境变量是否配置成功&#x1f9c1;四、修改Hadoop配置文件&#x1f36d;五、分发Hadoop安装目录&#x1f9cb;六、分发系统环境变量文件&#x1f368;七、格式化HDFS文…

安卓动态设置Unity图形API

命令行方式 Unity图像api设置为自动,安卓动态设置Vulkan、OpenGLES Unity设置 安卓设置 创建自定义活动并将其设置为应用程序入口点。 在自定义活动中,覆盖字符串UnityPlayerActivity。updateunitycommandlineararguments (String cmdLine)方法。 在该方法中,将cmdLine…

Java春招面试指南前言

在当今竞争激烈的就业市场中&#xff0c;对于即将踏入职场的Java开发者而言&#xff0c;春招是一次宝贵的机会。本博客专栏旨在为大家提供一份全面且实用的Java春招面试指南&#xff0c;助力大家顺利通过面试&#xff0c;开启职业生涯的新篇章。 无论你是初出茅庐的应届生&…

记录一次k8s起不来的排查过程

我在k8s集群&#xff0c;重启了一个node宿主机&#xff0c;竟然发现kubelet起不来了&#xff01;报错如下 这个报错很模糊&#xff0c;怎么排查呢。这样&#xff0c;开两个界面&#xff0c;一个重启kubelet&#xff0c;一个看系统日志(/var/log/message:centos&#xff0c;/va…

利用Qt5.15.2编写Android程序时遇到的问题及解决方法

文章目录 背景1.文件读写 背景 目前我用的是Qt5.15.2来编写Qt程序&#xff0c;环境的配置看我这篇文章【Qt5.15.2配置Android开发环境】 项目中的一些配置的截图&#xff1a; 1.文件读写 假如直接用 QFileDialog::getExistingDirectory来获取路径的话&#xff0c;会得到类…

JVM深入学习(一)

目录 一.JVM概述 1.1 为什么要学jvm&#xff1f; 1.2 jvm的作用 1.3 jvm内部构造 二.JVM类加载 2.1类加载过程 2.2类加载器 2.3类加载器的分类 2.4双亲委派机制 三.运行时数据区 堆空间区域划分&#xff08;堆&#xff09; 为什么分区(代)&#xff1f;&#xff08…

o1 医学推理:基于推断时长扩展与旅程学习,仅用 500 条蒸馏示例,实现 6%~11% 性能提升

o1 医学推理&#xff1a;基于推断时长扩展与旅程学习&#xff0c;仅用 500 条蒸馏示例&#xff0c;实现 6%&#xff5e;11% 性能提升 论文大纲1. 提出背景是什么&#xff1f;2. 概念的性质是什么&#xff1f;是什么导致这个性质&#xff1f;3. 请举一个正例、一个反例&#xff…