第十四届蓝桥杯三月真题刷题训练——第 4 天

news2024/11/25 10:05:01

目录

题目 1 :九数算式_dfs+回溯(全排列) 

题目描述

运行限制

代码:

题目2:完全平方数   

问题描述

输入格式

输出格式

样例输入 1

样例输出 1

样例输入 2

样例输出 2

评测用例规模与约定

运行限制

代码:


题目 1 :九数算式_dfs+回溯(全排列) 

题目描述

本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

观察如下的算式:

9213×85674=789314562

左边的乘数和被乘数正好用到了 1 ~ 9 的所有数字,每个 1 次。 而乘积恰好也是用到了 1 ~ 9 的所有数字,并且每个 1 次。

请你借助计算机的强大计算能力,找出满足如上要求的 9 数算式一共有多少个?

注意:

  1. 总数目包含题目给出的那个示例。
  2. 乘数和被乘数交换后作为同一方案来看待。

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 128M

代码:

package 第十四届蓝桥杯三月真题刷题训练.day4;

import java.io.*;
import java.util.HashSet;

/**
 * @author yx
 * @date 2023-03-07 13:13
 */
public class 九数算式_dfs全排列 {
    static PrintWriter out =new PrintWriter(System.out);
    static BufferedReader ins=new BufferedReader(new InputStreamReader(System.in));
    static StreamTokenizer in=new StreamTokenizer(ins);
    /**
     * 输入
     * in.nextToken()
     * int a= (int)in.nval;
     *
     * 输出
     * out.print();
     * out.flush();
     */
    static int ans=0;
    static int N=9;//数组长度
    static int[] nums = {1,2,3,4,5,6,7,8,9};//数组定义成全局变量
    public static void main(String[] args) throws IOException {
        dfs(0,8);
        System.out.println(ans);
    }
    //from是数组交换位置的头指针(依次会+1),to是尾指针相当于哨兵的作用,当from==to的时候退出
    static void dfs(int from ,int to){
        if(from==to){ //递归的出口
            countAns();
        }else {
            for (int i = from; i <= to ; i++) {
                swap(from,i);
                dfs(from+1,to);
                //回溯恢复
                swap(from,i);
            }
        }
    }
    static void swap(int a,int b){
        int temp=nums[a];
        nums[a]=nums[b];
        nums[b]=temp;
    }
    static boolean isTrue(int n){
        int[] count=new int[10];
        int temp=0;
        while (n!=0){
            temp=n%10;
            count[temp]++;
            n=n/10;
        }
        for (int i = 1; i <= 9; i++) {
            if(count[i]>1||count[i]==0){
                return false;
            }
        }
        return true;
    }
    static void countAns(){
        int a;
        int b;
        StringBuilder s=new StringBuilder("");
        for (int i = 0; i < N; i++) {
            s.append(nums[i]);
        }
        String ss=s.toString();
        int l=1;
        while (l<=N/2) {
            a=Integer.parseInt(ss.substring(0,l));
            b=Integer.parseInt(ss.substring(l,N));
            int temp=a*b;
            if(isTrue(temp)){
                ans++;
            }
            l++;
        }
    }
}

(这个题目调了好久,怪自己dfs生疏了)

全排列:递归+回溯

贴一个讲的蛮不错的视频:

全排列(递归)_哔哩哔哩_bilibili全排列(递归), 视频播放量 1200、弹幕量 0、点赞数 19、投硬币枚数 13、收藏人数 29、转发人数 5, 视频作者 走路太骚会闪腰lx, 作者简介 ,相关视频:『教程』什么是递归?,全排列问题 递归 编程演示,[PTA] 全排列 递归,[算法教程] 全排列,递归实现全排列算法,DFS-原理和全排列题,【python】递归与回溯-全排列(第二讲),DFS求全排列,递归实现全排列,全排列算法的递归实现https://www.bilibili.com/video/BV1aU4y1H7kL/?spm_id_from=333.788.recommend_more_video.-1&vd_source=eb072ba6b610daa77b0adfe79fcc5879

题目2:完全平方数   

问题描述

一个整数 a 是一个完全平方数, 是指它是某一个整数的平方, 即存在一个 整数 b, 使得 a=b2。

给定一个正整数 n, 请找到最小的正整数 x, 使得它们的乘积是一个完全平方数。

输入格式

输入一行包含一个正整数 n 。

输出格式

输出找到的最小的正整数 x 。

样例输入 1

12

样例输出 1

3

样例输入 2

15

样例输出 2

15

评测用例规模与约定

对于 3030 的评测用例, 1≤n≤10001≤n≤1000, 答案不超过 1000 。

对于 6060 的评测用例, 1≤n≤1081≤n≤108, 答案不超过 108108 。

对于所有评测用例, 1≤n≤10121≤n≤1012, 答案不超过 10121012 。

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 256M

代码:

package 第十四届蓝桥杯三月真题刷题训练.day4;

import java.io.*;
import java.util.Scanner;

/**
 * @author yx
 * @date 2023-03-07 15:25
 */
public class 完全平方数 {
    static PrintWriter out =new PrintWriter(System.out);
    static BufferedReader ins=new BufferedReader(new InputStreamReader(System.in));
    static StreamTokenizer in=new StreamTokenizer(ins);
    /**
     * 输入
     * in.nextToken()
     * int a= (int)in.nval;
     *
     * 输出
     * out.print();
     * out.flush();
     */
    public static void main(String[] args) throws IOException {
        Scanner scanner=new Scanner(System.in);
        long n=scanner.nextLong();
        long ans=n;
        for (long i = 1; i <= Math.sqrt(n); i++) {
            if(n%(i*i)==0){
                ans=n/(i*i);
            }
        }
        out.println(ans);
        out.flush();
    }
}

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

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

相关文章

数据结构刷题(十九):77组合、216组合总和III

1.组合题目链接过程图&#xff1a;先从集合中取一个数&#xff0c;再依次从剩余数中取k-1个数。思路&#xff1a;回溯算法。使用回溯三部曲进行解题&#xff1a;递归函数的返回值以及参数&#xff1a;n&#xff0c;k&#xff0c;startIndex(记录每次循环集合从哪里开始遍历的位…

场景式消费激发春日经济,这些电商品类迎来消费热潮

春日越临近&#xff0c;商机越浓郁。随着气温渐升&#xff0c;春日经济已经潜伏在大众身边。“春菜”、“春装”、“春游”、“春季养生”等春日场景式消费走热。 下面&#xff0c;鲸参谋为大家盘点几个与春日经济紧密相关的行业。 •春日仪式之春游踏青 ——户外装备全面开花…

查看 WiFi 密码的两种方法

查看 WiFi 密码的两种方法1. 概述2. 在控制面板中查看 WiFi 密码3. 使用 CMD 查看 WiFi 密码结束语1. 概述 突然忘记 WiFi 密码怎么办&#xff1f; 想连上某个使用过的 WiFi&#xff0c;但有不知道 WiFi 密码怎么办&#xff1f; 使用电脑如何查询 WiFi 密码&#xff1f; 以下是…

zabbix4.0 网络发现-自动添加主机-自动注册

zabbix的网络发现 网络发现的好处&#xff1a; 加快zabbix部署 简化管理 无需过多管理就能在快速变化的环境中使用zabbix zabbix网络发现给予以下信息 IP范围 可用的外部服务&#xff08;FTP&#xff0c;SSH&#xff0c;WEB&#xff0c;POP3&#xff0c;IMAP&#xff0c;TCP等&…

一篇深入解析BTF 实践指南

BPF 是 Linux 内核中基于寄存器的虚拟机&#xff0c;可安全、高效和事件驱动的方式执行加载至内核的字节码。与内核模块不同&#xff0c;BPF 程序经过验证以确保它们终止并且不包含任何可能锁定内核的循环。BPF 程序允许调用的内核函数也受到限制&#xff0c;以确保最大的安全性…

FPGA使用GTX实现SFP光纤收发SDI视频 全网首创略显高端 提供工程源码和技术支持

目录1、前言2、设计思路和框架3、vivado工程详解4、上板调试验证并演示5、福利&#xff1a;工程代码的获取1、前言 FPGA实现SDI视频编解码目前有两种方案&#xff1a; 一是使用专用编解码芯片&#xff0c;比如典型的接收器GS2971&#xff0c;发送器GS2972&#xff0c;优点是简…

如何让网络安全的防守技术更强?20年白帽子老江湖告诉你【蓝队】

网络安全的防守技术是网络安全工程师必备技能&#xff0c;只有攻防兼备的白帽子&#xff0c;才算是真正的网安精英。 网络安全的攻击技术在前面我已经讲过了&#xff0c;感兴趣的可以去看看&#xff1a; 90%的人都不算会网络安全&#xff0c;这才是真正的白帽子技术【红队】 . …

蓝桥杯--成绩分析

成绩分析 技巧 求最大值与最小值 if(a[i]>max) maxa[i]; if(a[i]<min) mina[i]; 这里的max为最小值0 这里的min为最大值100 这道题比较简单 题目大意 小蓝给学生们组织了一场考试&#xff0c;卷面总分为 100 分&#xff0c;每个学生的得分都是一个 0 到 100 的整数。 请…

【GO】K8s 管理系统项目33[前端部分–登录和登出]

K8s 管理系统项目[前端部分–登录和登出] 1. 登录登出流程 1.1 登录流程 登入流程总的分为5步: 账号密码验证token生成token验证验证成功进行跳转验证失败返回/login 1.2 登出流程 登出流程就相对简单,分为2步 删除Token跳转/login 2. 登录代码 src/views/login/Login.v…

vue双向绑定原理

Vue双向绑定的原理 vue的双向绑定原理&#xff1a;vue数据的双向绑定是通过数据劫持结合发布者-订阅者模式的方式来实现的。其核心就是通过obj.defineProperty()方法来实现数据的劫持&#xff0c;在数据变化时发布消息给订阅者&#xff0c;触发相应的监听回调。也就是说数据和视…

windows安装Stable Diffusion WebUI及问题解决记录

本文将详细介绍stable diffusion webui的下载、安装及问题解决。 StableDiffusion是2022年发布的深度学习文本到图像生成模型。它主要用于根据文本的描述产生详细图像&#xff0c;尽管它也可以应用于其他任务&#xff0c;如内补绘制、外补绘制&#xff0c;以及在提示词​&#…

AUTOSAR知识点Com(五):CANIf模式PUD Channel

1、概述 每个L-PDU分配给一个专用的物理CAN通道&#xff0c;该通道连接CAN控制器和CAN网络。通过这种方式&#xff0c;所有属于物理通道的L-PDU都可以在处理逻辑上&#xff0c;单一的L-PDU通道组上进行控制。这些逻辑组表示ECU连接到底层CAN网络的所有I-PDU。图 展示了L-PDU信道…

category排序专辑

case1——对有限类型的字段按指定要求排序&#xff1a; #学历分布 xueli_tsdf.pivot_table(index学历,values教师id,aggfunccount,marginsTrue,margins_name总计) xueli_ts[占比]np.round(xueli_ts[教师id]/xueli_ts.loc[总计,教师id],2) xueli_ts.reset_index(inplaceTrue)xu…

Adding Conditional Control to Text-to-Image Diffusion Models

安全验证 - 知乎知乎&#xff0c;中文互联网高质量的问答社区和创作者聚集的原创内容平台&#xff0c;于 2011 年 1 月正式上线&#xff0c;以「让人们更好的分享知识、经验和见解&#xff0c;找到自己的解答」为品牌使命。知乎凭借认真、专业、友善的社区氛围、独特的产品机制…

Java要学到什么程度才能找工作?小白怎么去面试Java岗位?

作为一个Java初学者&#xff0c;到底要学哪些知识点才能找到月薪过万的工作&#xff1f;或者说&#xff0c;怎样才能适应企业的开发流程&#xff0c;不至于进了公司都不知道怎么把需求转换成代码。甚至&#xff0c;唯唯诺诺的加班&#xff0c;一点自信都没有。本期文章&#xf…

STM32开发(18)----CubeMX配置RTC

CubeMX配置RTC前言一、什么是RTC&#xff1f;RTC时钟源RTC备份域二、实验过程1.CubeMX配置2.代码实现3.实验结果总结前言 本章介绍使用STM32CubeMX对RTC进行配置的方法&#xff0c;RTC的原理、概念和特点&#xff0c;配置各个步骤的功能&#xff0c;并通过实验方式验证。 一、…

Linux常见漏洞修复

一、nginx 修复TLS1.0&#xff0c;TLS1.1协议漏洞 1、漏洞描述 服务端口漏洞名称加固建议nginx443TLS版本1.0协议检测启用对TLS 1.2或1.3的支持&#xff0c;并禁用对TLS 1.0的支持。nginx443TLS版本1.1协议检测启用对TLS 1.2或1.3的支持&#xff0c;并禁用对TLS 1.1的支持。 …

Linux27 -- 通过抓包观察三次握手和四次挥手、链接的状态(tcp状态转移图)、TIME_WAIT 存在的原因

tcp协议的特点&#xff1a; 面向连接的&#xff0c;可靠的&#xff0c;流式服务 //面试常问&#xff1a; 一、通过抓包观察三次握手、四次挥手 工具&#xff1a;tcpdump 命令 抓冲我到他从他到我的数据包。 需要管理员权限。 运行示例&#xff1a; 进入管理员权限&#xff…

使用Advanced Installer打包程序及运行环境

Advanced Installer 工具版本&#xff1a;20.1.1 设置产品信息 选中右侧【Product Details】输入产品信息 设置文件和文件夹 添加使用VS发布之后的程序文件夹 设置文件夹刷新 选中文件夹&#xff0c;右键选择属性&#xff0c;选中Synchronize标签。启用“Synchronize conten…

InfluxDB 2 介绍与使用 flux查询 数据可视化

一、关键概念 相比V1 移除了database 和 RP&#xff0c;增加了bucket。 V2具有以下几个概念&#xff1a; timestamp、field key、field value、field set、tag key、tag value、tag set、measurement、series、point、bucket、bucket schema、organization 新增的概念&…