当前位置: 首页 > news >正文

【蓝桥杯 第十届省赛Java B组】真题训练(A - H)H待更新

目录

A、组队 - 看图一眼出答案

B、不同子串 - 字符串模拟 + set去重

C、数列求值 - 模拟取余

D、数的分解 - 三重暴力

E、迷宫 - bfs 判断路径

F、特别数的和 - 弱智模拟

G、外卖店优先级 - map 暴力(90%通过率)

H、人物相关性分析 - 


A、组队 - 看图一眼出答案

思路:

 没啥说的,注意不能重复选择同一编号!

98+99+98+97+98=98*5=490

B、不同子串 - 字符串模拟 + set去重

import java.util.*;public class test {public static void main(String[] args){Scanner sc=new Scanner(System.in);String s="0100110001010001";int n=s.length();Set<String> st=new HashSet<>();for(int i=0;i<n;i++)for(int j=i+1;j<n+1;j++){String t=s.substring(i,j);st.add(t);}System.out.print(st.size());}
}

 答案是100

C、数列求值 - 模拟取余

思路:

最后算出来结果非常大,我们只需要每次取最后4位就好

答案是4659 

public class test {static int N=20190324;public static void main(String[] args){Scanner sc=new Scanner(System.in);int[] d=new int[N];d[0]=1;d[1]=1;d[2]=1;for(int i=3;i<N;i++) d[i]=(d[i-1]+d[i-2]+d[i-3])%10000;System.out.print(d[N-1]);}
}

D、数的分解 - 三重暴力

思路:

3个各不相同的正整数,我们只需要i j k三重循环,并保证i<j<k,再字符串判断是否含2或4即可,答案是40785

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc=new Scanner(System.in);int res=0,target=2019;for(int i=1;i<target;i++)for(int j=i+1;j<target;j++)for (int k=j+1;k<target;k++){if(i+j+k==target&&ck(i)&&ck(j)&&ck(k)) res++;}System.out.println(res);}public static boolean ck(int x) {String s=String.valueOf(x);if(s.indexOf('2')!=-1||s.indexOf('4')!=-1) return false;return true;}
}

E、迷宫 - bfs 判断路径

【蓝桥杯集训11】BFS(4 / 4)_Roye_ack的博客-CSDN博客 

思路:

DDDDRRURRRRRRDRRRRDDDLDDRDDDDDDDDDDDDRDRDRRURRUURRDDDDRDRRRRRURRRDRRDDDRRRRUURUUUUUUULULLUUUURRRRUULLLUUUULLUUULUURRURRURURRRDRDRRRRDRDRDDLLLDDRRDDRDDLDDDLLDDLLLDLDDDLDDRRRRRRRRRDDDDDDRR

迷宫问题用bfs解决,要求满足字典序最小的最短路,我们可以设置能走时优先选择顺序【D>L>R>U】,也就是在dx dy方向数组上按顺序定义

建立坐标系,x轴正方向向下,y轴正方向向右

首先倒着bfs预处理出d[i][j]——(i,j)到终点的最短距离

然后正向遍历能走的点,如果d[x][y]==d[nx][ny]+1,说明走这点是在最短路上,记录方向

因为我们优先是【D>L>R>U】这么走的,所以输出的最短路肯定是字典序最小的

为什么d[x][y]==d[nx][ny]+1说明是在最短路上?

因为bfs跑完,处理出的 值非-1的d[i][j] 都是能通往终点的最短路。d[i][j]代表(i,j)到终点的最短距离,如果d[x][y]==d[nx][ny]+1,说明(x,y)是最短路上(nx,ny)的前一个点,相当于说(x,y)在最短路上

import java.util.Arrays;
import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;public class Main {static int n=30,m=50;static int[][] d=new int[n+1][m+1]; //d[i][j]是(i,j)到终点的最短距离static String[] g=new String[n+1]; //存储原始迷宫static int[] dx={1,0,0,-1};  // 方向优先D>L>R>Ustatic int[] dy={0,-1,1,0};static char[] dir={'D','L','R','U'};public static void main(String[] args) {Scanner sc=new Scanner(System.in);for(int i=0;i<n;i++) g[i]=sc.next();bfs();String res="";int x=0,y=0;while(x!=n-1||y!=m-1){for(int i=0;i<4;i++){int nx=dx[i]+x;int ny=dy[i]+y;if(nx>=0&&nx<n&&ny>=0&&ny<m&&g[nx].charAt(ny)=='0'){if(d[x][y]==d[nx][ny]+1){res+=dir[i]; //如果这条路能走且在最短路上 记录方向x=nx;y=ny;}}}}System.out.println("最短路径为:"+d[0][0]);System.out.println(res);}public static void bfs() {for(int i=0;i<n;i++) Arrays.fill(d[i],-1);d[n-1][m-1]=0;Queue<PII> q=new LinkedList<>();q.offer(new PII(n-1,m-1));while(!q.isEmpty()){PII t=q.poll();for(int i=0;i<4;i++){int nx=t.x+dx[i];int ny=t.y+dy[i];if(nx>=0&&nx<n&&ny>=0&&ny<m&&d[nx][ny]==-1&&g[nx].charAt(ny)=='0'){d[nx][ny]=d[t.x][t.y]+1;q.offer(new PII(nx,ny));}}}}
}class PII
{int x,y;PII(int x,int y){this.x=x;this.y=y;}
}

F、特别数的和 - 弱智模拟

import java.util.Arrays;
import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc=new Scanner(System.in);int res=0;int n=sc.nextInt();for(int i=1;i<=n;i++)if(ck(i)) res+=i;System.out.println(res);}public static boolean ck(int x){String s=String.valueOf(x);if(s.indexOf('0')!=-1||s.indexOf('1')!=-1||s.indexOf('2')!=-1||s.indexOf('9')!=-1)return true;return false;}}

 

G、外卖店优先级 - map 暴力(90%通过率)

思路:

(碎碎念可以不看)这题折磨死我了,看一眼数据范围就知道双for会t,然后就想着找规律,但是找规律不行,第一次找的规律是:预处理记录每个id的时间点,2*时间点的个数=总共赚的优先级,然后再减去没有的时间点个数(因为如果没有订单优先级-1),最后判断大于3就说明在队列里

但这样写忽略了一种情况:id为2的时间点【5,6,6】如果按照上面规律,1,2,3,4属于没有出现的时间点,减去他们就是-4,然而实际上1,2,3,4时因为优先级为0,并不需要减去。

然后我就放弃思考了,写了个暴力……暴力写的完也是debug一年(因为循环时把t写成n了,为了这改了很久……)(碎碎念结束)

  • 建一个map,【id:时间点列表】
  • 然后遍历每一个id的从1—t的时间点
    • 如果出现,则【优先级+=2×时间点出现次数】,这里运用排序+下标方法计算时间点出现次数
    • 如果没有出现,则优先级-1,如果已经是0了就不变
  • 最后判断一下状态,如果优先级>5则true,如果优先级<=3则false
  • 如果状态为true,则res++
import java.util.*;public class Main {public static void main(String[] args) {Scanner sc=new Scanner(System.in);int res=0;int n=sc.nextInt(),m= sc.nextInt(), t= sc.nextInt();Map<Integer,List<Integer>> mp=new HashMap<>();int[] shopnum=new int[n+1];boolean[] st=new boolean[n+1];int[] h=new int[n+1];while(m-->0){int ts=sc.nextInt();int id=sc.nextInt();List<Integer> list=new ArrayList<>();if(shopnum[id]!=0) list=mp.get(id);  //注意只有map中有list时才能直接赋值,否则需要新建list.add(ts);mp.put(id,list);shopnum[id]++;}int id=1;for(List<Integer> x:mp.values()){Collections.sort(x); //排序是为了后面计算一个时间点出现多次的情况for(int i=1;i<=t;i++){if(x.contains(i))  h[id]+=2*(x.lastIndexOf(i)-x.indexOf(i)+1); //eg:【1,1,1,3】 1的lastindex-indexof+1就是1的个数else if(!x.contains(i)) h[id]=Math.max(0,h[id]-1);if(h[id]>5) st[id]=true;else if(h[id]<=3) st[id]=false;}if (st[id]) res++;id++;}System.out.println(res);}
}

 

H、人物相关性分析 - 

思路:

 

相关文章:

【蓝桥杯 第十届省赛Java B组】真题训练(A - H)H待更新

目录 A、组队 - 看图一眼出答案 B、不同子串 - 字符串模拟 set去重 C、数列求值 - 模拟取余 D、数的分解 - 三重暴力 E、迷宫 - bfs 判断路径 F、特别数的和 - 弱智模拟 G、外卖店优先级 - map 暴力&#xff08;90%通过率&#xff09; H、人物相关性分析 - A、组队 -…...

【牛客题】二进制求和 <模拟>

给定两个用字符串表示的二进制数&#xff0c;返回他们的和。 数据范围&#xff1a;字符串长度满足 1 ≤ n ≤ 1 0 5 10^5 105 &#xff0c;字符串中只含有 0 和 1&#xff0c;且保证除 0 以外的二进制数没有前导零的情况。 示例输入&#xff1a; "101","1&qu…...

Error:Only idle or expired IP address can be disabled.

华为数通设备&#xff0c;在配置DHCP排除地址时可能会出现以下情况 Error:Only idle or expired IP address can be disabled. 这是因为地址已经被分配出去&#xff0c;所以现在无法进行排除 解决方法 1.先进入接口关闭DHCP [CE2-GigabitEthernet0/0/1]undo dhcp select g…...

Xubuntu16.04系统中create_ap开启5G网络的踩坑记录

Xubuntu16.04系统中安装create_ap创建无线AP&#xff1a; https://blog.csdn.net/qq_45445740/article/details/133972642?spm1001.2014.3001.5501 目录 1.create_ap.conf 配置文件解析2.关于信号强度和延时2.1 信号强度2.2 信号延时2.3 网络延时测试工具推荐——PingPlotter …...

8. 一文快速学懂常用工具——Linux命令(上)

本章讲解知识点 引言 指令学习 本专栏适合于软件开发刚入职的学生或人士&#xff0c;有一定的编程基础&#xff0c;帮助大家快速掌握工作中必会的工具和指令。本专栏针对面试题答案进行了优化&#xff0c;尽量做到好记、言简意赅。如专栏内容有错漏&#xff0c;欢迎在评论区指…...

@RestController注解说明

在Spring框架中&#xff0c;RestController注解是一个非常重要的注解&#xff0c;它用于将一个类标记为RESTful风格的控制器。本文将详细介绍RestController注解的作用和用法&#xff0c;并提供示例以帮助读者更好地理解和使用它。 RestController的作用 RestController注解是…...

Excel中行列范围的转换

将 行&#xff1a;1,4-5,8,11 列&#xff1a;a,c-e,f 这种写法转换成单元格地址的方法。 public static Tuple<List<int>, List<string>> ConvertRowColumn(string rowRep, string colRep){List<int> rowIdxs new List<int>();rowRep rowRep.…...

golang的类型断言

前言&#xff1a;原因很简单&#xff0c;写的代码panic了。报错如下。为此专门看下golang的类型断言。 “[PANIC]interface conversion: interface {} is string, not float64”。 1、类型断言(assertion) 所谓“类型断言”即判断一个变量是不是某个类型的实例(简单来讲就是判…...

监听dom变化,监听dom属性变化

一、利用new MutationObserver const config {attributes: true, // 监听属性变化childList: true, // 监听子节点变subtree: true // 监听后代元素变化};jianting new MutationObserver(() > {this.changeFun()});jianting.observe(dom, config) /监听 jianting.disconne…...

mfc140u.dll丢失怎么修复,mfc140u.dll文件有什么作用

今天我想和大家分享的是关于mfc140u.dll文件丢失的解决方法。在我们使用电脑的过程中&#xff0c;有时候会遇到一些错误提示&#xff0c;其中比较常见的就是“无法找到mfc140u.dll文件”。那么&#xff0c;这个文件是什么呢&#xff1f;它有什么作用呢&#xff1f; 首先&#…...

关于MySql update语句不能用子查询的解决办法

关于MySql update语句不能用子查询的解决办法 使用MySql数据库语法操作update时&#xff0c;第一时间想到的是一下写法&#xff1a; UPDATE purchase_request_detail SET convert_to_voucher_id2, convert_to_voucher_typeinventory-voucher WHERE detail_id IN (select deta…...

【WinForm】WinForm程序C#分屏显示

文章目录 前言1. 准备工作2. 步骤3 示例代码4. 结论 前言 在开发WinForm应用程序时&#xff0c;有时我们需要在另一个屏幕上显示与主界面内容相同的界面。本文将介绍如何使用C#克隆正在运行的界面&#xff0c;并在另一个屏幕上显示相同的内容。 1. 准备工作 在开始之前&…...

云安全—K8S API Server 未授权访问

0x00 前言 master节点的核心就是api服务&#xff0c;k8s通过REST API来进行控制&#xff0c;在k8s中的一切都可以抽象成api对象&#xff0c;通过api的调用来进行资源调整&#xff0c;分配和操作。 通常情况下k8s的默认api服务是开启在8080端口&#xff0c;如果此接口存在未授…...

nodejs+vue啄木鸟便民维修网站设计与实现-计算机毕业设计python-django-php

1、目的&#xff1a; 设计一个适用于便民家电维护的平台。该系统方便管理员对用户信息的管理&#xff0c;使用户在不掌握任何专业知识的前提下&#xff0c;可以方便快速的上手&#xff0c;因此项目应具有广泛使用人群。该课题应包括&#xff08;至少包括&#xff09;以下几个基…...

【数据结构】树形结构所有路径复原为链表

目录 1. 树形结构可视化 2. 树形结构转为链表 此目标是要还原树形结构的所有路径。树形结构是一种常见的数据结构&#xff0c;它表示元素之间层次关系。在树形结构中&#xff0c;每个节点可能拥有一个或多个子节点&#xff0c;形成了一个分层的结构。为了还原树形结构的路径&…...

linux杀毒软件下载、安装(在线安装、离线安装)

下载 ClamAVNet 离线安装 # 离线安装 rpm -ivh --prefix/usr/local/clamav clamav*linux.x86_64.rpm # 添加用户组和组成员 groupadd clamav useradd -g clamav clamav # 创建日志目录、病毒库目录和套接字目录 mkdir -p /usr/local/clamav/logs mkdir -p /usr/local/clamav/…...

系列五、映射文件xxxMapper.xml

一、概述 mapper映射文件是mybatis中最重要的部分&#xff0c;涉及到的细节也非常多。 1.1、parameterType 表示输入参数的类型。例如&#xff1a; <select id"getUserById" parameterType"integer" resultType"org.star.entity.model.UserDO&…...

【缓存】Spring全家桶中@CacheEvict无效情况共有以下几种

Spring全家桶中CacheEvict无效情况共有以下几种 一、背景介绍二、原因分析三、解决方案 一、背景介绍 SpringBoot中使用Cacheable注解缓存数据&#xff0c;使用CacheEvict注解删除缓存。但是在项目使用过程中&#xff0c;发现使用CacheEvict注解删除缓存无效。 拓展&#xff…...

P9117 [春季测试 2023] 涂色游戏

Portal. 维护每一行、每一列最后一次染色时染上的颜色以及时间戳即可。 时间复杂度 O ( T n ) O(Tn) O(Tn)。 #include <bits/stdc.h> using namespace std;const int maxn1e55; struct node{int c,t;}a[maxn],b[maxn];void solve() {int n,m,q;cin>>n>>…...

react如何进行项目配置代理

目录 一、前言 二、配置方法 三、总结 前言&#xff1a; 在使用React创建应用程序时&#xff0c;配置代理的目的是为了解决跨域请求的问题。跨域请求是指在浏览器中&#xff0c;一个站点的Web应用程序向另一个不同域名的站点发送请求。由于浏览器的安全策略&#xff0c;这些…...

React19源码系列之 事件插件系统

事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...

Java多线程实现之Thread类深度解析

Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...

保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek

文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama&#xff08;有网络的电脑&#xff09;2.2.3 安装Ollama&#xff08;无网络的电脑&#xff09;2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...

七、数据库的完整性

七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...

虚拟电厂发展三大趋势:市场化、技术主导、车网互联

市场化&#xff1a;从政策驱动到多元盈利 政策全面赋能 2025年4月&#xff0c;国家发改委、能源局发布《关于加快推进虚拟电厂发展的指导意见》&#xff0c;首次明确虚拟电厂为“独立市场主体”&#xff0c;提出硬性目标&#xff1a;2027年全国调节能力≥2000万千瓦&#xff0…...

uniapp手机号一键登录保姆级教程(包含前端和后端)

目录 前置条件创建uniapp项目并关联uniClound云空间开启一键登录模块并开通一键登录服务编写云函数并上传部署获取手机号流程(第一种) 前端直接调用云函数获取手机号&#xff08;第三种&#xff09;后台调用云函数获取手机号 错误码常见问题 前置条件 手机安装有sim卡手机开启…...

Go语言多线程问题

打印零与奇偶数&#xff08;leetcode 1116&#xff09; 方法1&#xff1a;使用互斥锁和条件变量 package mainimport ("fmt""sync" )type ZeroEvenOdd struct {n intzeroMutex sync.MutexevenMutex sync.MutexoddMutex sync.Mutexcurrent int…...

代码规范和架构【立芯理论一】(2025.06.08)

1、代码规范的目标 代码简洁精炼、美观&#xff0c;可持续性好高效率高复用&#xff0c;可移植性好高内聚&#xff0c;低耦合没有冗余规范性&#xff0c;代码有规可循&#xff0c;可以看出自己当时的思考过程特殊排版&#xff0c;特殊语法&#xff0c;特殊指令&#xff0c;必须…...

(一)单例模式

一、前言 单例模式属于六大创建型模式,即在软件设计过程中,主要关注创建对象的结果,并不关心创建对象的过程及细节。创建型设计模式将类对象的实例化过程进行抽象化接口设计,从而隐藏了类对象的实例是如何被创建的,封装了软件系统使用的具体对象类型。 六大创建型模式包括…...

AxureRP-Pro-Beta-Setup_114413.exe (6.0.0.2887)

Name&#xff1a;3ddown Serial&#xff1a;FiCGEezgdGoYILo8U/2MFyCWj0jZoJc/sziRRj2/ENvtEq7w1RH97k5MWctqVHA 注册用户名&#xff1a;Axure 序列号&#xff1a;8t3Yk/zu4cX601/seX6wBZgYRVj/lkC2PICCdO4sFKCCLx8mcCnccoylVb40lP...