第十五届蓝桥杯C/C++学B组(解)

news2024/10/17 8:30:40

1.握手问题

解题思路一

数学方法

50个人互相握手 (49+1)*49/2   ,减去7个人没有互相握手(6+1)*6/2

答案:1024

解题思路二
package 十五届;

public class Min {
    public static void main(String[] args) {
        int ans = 0;
        for (int i = 1; i <= 50; i++) {
            for (int j = i+1; j <= 50; j++) {
                //排除掉7人的情况
                if(!(i>=1&&i<=7 && j>=1&&j<=7)){
                    ans++;
                }
            }
        }
        System.out.println(ans);
    }
}

 2.小球反弹

解题思路:

针对前进的方向进行分解为x,y方向,去求解运动返回到左上角的时间,有了时间,即可利用时间来计算总路程,假设 x方向走了p个来回,y方向走了q个来回,经过了时间t,小球第一次回到原点

则时间*速率=路程  t*dx = 2px ,t*dy = 2qy,令一式/二式,得p/q= y/x*dx/dy = y*dx/x*dy ,利用gcd(求两个数的最大公约数)对分式p,q进行约分,进而得到约分后的p,q 则利用时间t=2px/dx,总路程 = t*(sqrt(15^2+17^2))

package 十五届;

import static java.lang.Math.sqrt;

public class 小球反弹 {
    public static void main(String[] args) {
        int x = 343720;
        int y = 233333;
        int dx = 15;
        int dy = 17;
        int p = y * dx;
        int q = x * dy;
        int g = gcd(p, q);
        p /= g;
        q /= g;
        int t = 2 * p * x / dx;
        double ans = t * sqrt(15 * 15 + 17 * 17);
        //d答案输出两位小数
        System.out.printf("%.2f", ans);
    }

    public static int gcd(int a, int b) {
        return b == 0 ? a : gcd(b, a % b);
    }
}

答案:1100325199.77

3.好数

解题思路

 首先排除掉末位数,可以优化复杂度,满足条件后 在进一步检查偶数位是否为偶数,奇数位是否为奇数

package 十五届;

import java.util.Scanner;

public class 好数 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int ans = 0;
        for (int i = 1; i <= n; i++) {
            //局部优化:过滤数值结尾不符合条件的情况
            if (i % 10 % 2 == 0) continue;
            if (check(i)) ans++;//判断是否为好数
        }
        System.out.println(ans);
    }

    //检查x是否为好数
    public static boolean check(int x) {
        int cnt = 1; //记录位数
        while (x > 0) {
            int b = x % 10;
            if (cnt % 2 == 1) {//是奇数位并且不是奇数
                if (b % 2 != 1) return false;
            } else if (b % 2 != 0) {//是偶数位并且不是偶数
                return false;
            }
            cnt++;
            x /= 10;
        }
        return true;
    }
}

4.R格式

解题思路:

本题考察利用数组模拟高精度,

package 十五届;

import java.util.Scanner;

public class 高精度 {
    public static void main(String[] args) {
        int[] a = new int[(int) (2e3 + 10)];
        String s = "";
        int n = 0;
        Scanner scanner = new Scanner(System.in);
        s = scanner.nextLine();
        n = scanner.nextInt();

        StringBuffer stringBuffer = new StringBuffer(s);
        stringBuffer.reverse();//反转字符串

        int pos = s.indexOf('.');

        stringBuffer.delete(pos, pos + 1);//把小数点删除,方便后续计算
        int len = s.length();

        for (int i = 0; i < len; i++) {
            a[i + 1] = stringBuffer.charAt(i) - '0';
        }

        //高精度*低精度模板
        for (int i = 1; i <= n; i++) {
            //顺序扫描每一位,均*2
            for (int j = 1; j <= len; j++) {
                a[j] = a[j] * 2;
            }
            //再次扫描。处理进位和最高位
            for (int j = 1; j <= len; j++) {
                if (a[j] >= 10) {
                    a[j + 1]++;
                    a[j] %= 10;
                    if (j == len) len++;
                }
            }
        }
        //处理小数点后的第一位,进行四舍五入
        if (a[pos] >= 5) {
            a[pos + 1]++;
        }
        //倒序打印
        for (int i = len; i >= pos+1; i--) {
            System.out.print(a[i]);
        }
    }

}

第四题:宝石组合

题解·

 

#include <iostream>
#include <algorithm>
#include <vector>

using namespace std;

int a[100100], b[100100];
vector<int> vec[100100];
int n;

int main() {
    ios::sync_with_stdio(false);
    cout.tie(nullptr);
    cin >> n;
    int max_a = 0;
    for (int i = 1; i <= n; i++) {
        cin >> a[i];
        b[a[i]]++;
        max_a = max(max_a, a[i]);
    }
    sort(a + 1, a + 1 + n);
    for (int i = 2; i <= max_a; i++) {
        for (int j = i; j <= max_a; j += i) {
            for (int k = 1; k <= b[j]; k++) {
                if (vec[i].size() >= 3) break;
                vec[i].push_back(j);
            }
        }
    }
    for (int i = max_a; i >= 2; i--) {
        if (vec[i].size() >= 3) {
            cout << vec[i][0] << " " << vec[i][1] << " " << vec[i][2] << endl;
            return 0;
        }
    }
    cout << a[1] << " " << a[2] << " " << a[3] << endl;
    return 0;
}

 

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

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

相关文章

实时从TDengine数据库采集数据到Kafka Topic

实时从TDengine数据库采集数据到Kafka Topic 一、认识TDengine二、TDengine Kafka Connector三、什么是 Kafka Connect&#xff1f;四、前置条件五、安装 TDengine Connector 插件六、启动 Kafka七、验证 kafka Connect 是否启动成功八、TDengine Source Connector 的使用九、添…

【更新】A股上市公司企业网络安全治理数据集(2007-2023年)

一、测算方式&#xff1a;参考C刊《金融评论》王辉&#xff08;2024&#xff09;老师的做法&#xff0c;安全治理种子词的选取主要依托于《中华人民共和国网络安全法》、《中华人民共和国数据安全法》、《关键信息基础设施安全保护条例》等法律法规文件与《网络安全审查办法》、…

蓝桥杯刷题--幸运数字

幸运数字 题目: 解析: 我们由题目可以知道,某个进制的哈沙德数就是该数和各个位的和取整为0.然后一个幸运数字就是满足所有进制的哈沙德数之和.然后具体就是分为以下几个步骤 1. 我们先写一个方法,里面主要是用来判断,这个数在该进制下是否是哈沙德数 2. 我们在main方法里面调用…

量化之一:均值回归策略

文章目录 均值回归策略理论基础数学公式 关键指标简单移动平均线&#xff08;SMA&#xff09;标准差Z-Score 交易信号实际应用优缺点分析优点缺点 结论 实践backtrader参数&#xff1a;正常情况&#xff1a;异常情况&#xff1a; 均值回归策略 均值回归&#xff08;Mean Rever…

华为公有云实战

1.申请一台ECS云主机&#xff0c;并且可以提供web服务 1.1访问云主机-华为特有技术novnc&#xff0c;KVM中提到vnc技术&#xff0c;novnc是不用安装vnc客户端用浏览器html语言实现。 1.2cloudshell 1.3小工具 ssh 弹性ip 1.4.安装httpd服务 建立索引文件 浏览器上输入弹性ip可…

网络资源模板--Android Studio 实现简易记事本App

目录 一、项目演示 二、项目测试环境 三、项目详情 四、完整的项目源码 一、项目演示 网络资源模板--基于Android studio 实现的简易记事本App 二、项目测试环境 三、项目详情 首页 创建一个空的笔记本列表 mNotebookList。使用该列表和指定的布局资源 item_notebook 创建…

前端开发笔记--html 黑马程序员1

文章目录 前端开发工具--VsCode前端开发基础语法VsCode优秀插件Chinese --中文插件Auto Rename Tag --自动重命名插件open in browserOpen in Default BrowserOpen in Other Browser Live Server -- 实时预览 前端开发工具–VsCode 轻量级与快速启动 快速加载&#xff1a;VSCo…

WordPress添加meta标签做seo优化

一、使用function.php文件添加钩子函数添加 方法1、使用is_page()判断不同页面的page_id进行辨别添加不同页面keyword和description &#xff08;1&#xff09;通过页面前台源码查看对应页面的id &#xff08;2&#xff09;或者通过wordpress后台&#xff0c;点击页面列表&…

云计算ftp 服务器实验

创建VLAN 10 划分端口 创建VLAN 10 的地址 10.1.1.1 服务器的地址是 10.1.1.2 这是服务上的配置 服务器上选择ftp 启动 &#xff0c;文件目录选择一下 在 交换机上 ftp 10.1.1.2 服务器的地址 把刚才创建的shenyq txt 文件下载下到本地交换机 我们能看到交换…

有关安科瑞Acrel-1000DP分布式光伏监控系统在某公司分布式光伏发电项目中的应用探讨-安科瑞 蒋静

摘要&#xff1a;分布式光伏作为可再生能源的一种重要形式&#xff0c;能够根据不同场地的实际情况进行定制&#xff0c;尽可能地利用可用空间&#xff0c;减少对传统化石燃料的依赖&#xff0c;也能降低温室气体排放、改善环境质量。在政策支持和市场需求的双重推动下&#xf…

电脑查不到IP地址是什么原因?怎么解决

在日常使用电脑的过程中&#xff0c;有时会遇到无法查询到电脑IP地址的情况&#xff0c;这可能会影响到网络的正常使用。本文将探讨电脑查不到IP地址的可能原因&#xff0c;并提供相应的解决方案。 一、原因分析 ‌网络连接问题‌&#xff1a;首先&#xff0c;网络连接不稳定或…

MySQL(B站CodeWithMosh)——2024.10.11(14)

ZZZZZZ目的ZZZZZZ代码ZZZZZZ重点ZZZZZZ操作&#xff08;非代码&#xff0c;需要自己手动&#xff09; 8- CASE运算符The CASE Operator_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1UE41147KC?p62&vd_sourceeaeec77dfceb13d96cce76cc299fdd08 在sql_store中&am…

智能网联汽车安全隐患,如何化解?

0. 智能网联汽车安全问题如何才能解决&#xff1f;1. TARA 威胁分析与风险评估平台2. CSTP 智能网联汽车网络安全测试平台3. 智能网联汽车安全解决方案4. 车联网测试认证与培训解决方案5. 车联网网络安全实验室建设方案 0. 智能网联汽车安全问题如何才能解决&#xff1f; 智能…

FFmpeg的简单使用【Windows】--- 简单的视频混合拼接

实现功能 点击【选择文件】按钮在弹出的对话框中选择多个视频&#xff0c;这些视频就是一会将要混剪的视频素材&#xff0c;点击【开始处理】按钮之后就会开始对视频进行处理&#xff0c;处理完毕之后会将处理后的文件路径返回&#xff0c;并在页面展示处理后的视频。 视频所…

【数据结构】排序算法系列——桶排序(附源码+图解)

桶排序 算法思想 桶排序&#xff08;BucketSort)&#xff0c;也被叫做箱排序&#xff0c;它将整个数据组分为n个相同大小的子区间&#xff0c;这类子区间或称为桶。输入数据是均匀、独立分布的&#xff0c;所以一般不会出现一个桶中装有过多数据的情况。作为一种排序算法&…

160页PPT | 埃森哲-制造业变革转型八大领域:痛点剖析与改进策略

PT下载链接见文末~ 引言&#xff1a;制造业数字化转型规划 制造业正处于数字化转型的关键时期&#xff0c;旨在通过技术革新和流程优化&#xff0c;灵活应对市场波动&#xff0c;强化竞争优势&#xff0c;并紧跟技术进步的步伐。此规划围绕三大核心要素展开&#xff1a; 1、…

Pytest中fixture的scope详解

pytest作为Python技术栈下最主流的测试框架&#xff0c;功能极为强大和灵活。其中Fixture夹具是它的核心。而且pytest中对Fixture的作用范围也做了不同区分&#xff0c;能为我们利用fixture带来很好地灵活性。 下面我们就来了解下这里不同scope的作用 fixture的scope定义 首…

8.优化存储过程的性能(8/10)

优化存储过程的性能 1.引言 存储过程是数据库系统中预先编写好的SQL语句集合&#xff0c;它们被保存在数据库服务器上&#xff0c;可以在需要时被调用执行。存储过程的使用可以提高数据库操作的效率&#xff0c;减少网络通信&#xff0c;并且可以封装复杂的逻辑&#xff0c;使…

中科星图GVE(案例)——AI实现建筑用地变化前后对比情况

目录 简介 函数 gve.Services.AI.ConstructionLandChangeExtraction(image1,image2) 代码 结果 知识星球 机器学习 简介 AI可以通过分析卫星图像、航拍影像或其他地理信息数据&#xff0c;实现建筑用地变化前后对比。以下是一种可能的实现方法&#xff1a; 数据获取&am…

全能PDF工具集 | PDF Shaper Ultimate v14.6 便携版

软件简介 PDF Shaper是一款功能强大的PDF工具集&#xff0c;它提供了一系列用于处理PDF文档的工具。这款软件使用户能够轻松地转换、分割、合并、提取页面以及旋转和加密PDF文件。PDF Shaper的界面简洁直观&#xff0c;使得即使是新手用户也能快速上手。它支持广泛的功能&…