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

【蓝桥杯研究生组】第15届Java试题答案整理

D 题


试题 D: 商品库存管理

时间限制: 3.0s 内存限制: 512.0MB 本题总分:10 分


【问题描述】

在库存管理系统中,跟踪和调节商品库存量是关键任务之一。小蓝经营的仓库中存有多种商品,这些商品根据类别和规格被有序地分类并编号,编号范围从 1 至 n 。初始时,每种商品的库存量均为 0。

为了高效地监控和调整库存量,小蓝的管理团队设计了 m 个操作,每个操作涉及到一个特定的商品区间,即一段连续的商品编号范围(例如区间 ([L, R]))。执行这些操作时,区间内每种商品的库存量都将增加 1。然而,在某些情况下,管理团队可能会决定不执行某些操作,使得这些操作涉及的商品区间内的库存量不会发生改变,维持原有的状态。

现在,管理团队需要一个评估机制,来确定如果某个操作未被执行,那么最终会有多少种商品的库存量为 0。对此,请你为管理团队计算出,对于每个操作,如果不执行该操作而执行其它操作,库存量为 0 的商品的种类数。


【输入格式】

输入的第一行包含两个整数 ( n ) 和 ( m ),分别表示商品的种类数和操作的个数。

接下来的 ( m ) 行,每行包含两个整数 ( L ) 和 ( R ),表示一个操作涉及的商品区间。


【输出格式】

输出 ( m ) 行,每行一个整数,第 ( i ) 行的整数表示如果不执行第 ( i ) 个操作,则最终库存量为 0 的商品种类数。


【输入示例】
5 3
1 2
2 4
3 5


【输出示例】
1
0
1


import java.util.Scanner;/**/
public class KuchunManage {public static void main(String[] args) {Scanner in = new Scanner(System.in);// 商品个数int prouctNum = in.nextInt();// 操作个数int operationNum = in.nextInt();int[] products = new int[prouctNum + 1];int[][] operations = new int[operationNum][2];for (int i=0; i<operationNum; i++){int left = in.nextInt();int right = in.nextInt();operations[i][0] = left;operations[i][1] = right;for(int j = left; j<=right; j++) {products[j]++;}}// 去掉第 i 个操作的结果for (int i=0; i<operationNum; i++) {int left = operations[i][0];int right = operations[i][1];for(int j = left; j<=right; j++) {products[j]--;}int ans = 0;for (int k=1; k<=prouctNum; k++){if (products[k] == 0) {ans++;}}// 还原for(int j = left; j<=right; j++) {products[j]++;}System.out.println(ans);}}
}

F 题

在这里插入图片描述

import java.util.Scanner;public class HuiWen {// 能否加入任意个 l 、 q 、 b,使得字符串 S 变为回文字符串// 判断字符串 S 是否是回文字符串public static boolean isHuiWen(String S){int len = S.length();for (int i = 0; i<len / 2; i++){if (S.charAt(i) != S.charAt(len - i - 1)) {return false;}}return true;}public static boolean canBeHuiWen(String S){int len = S.length();int end = 1;// 从头开始早最长的回文for (int i = 1; i<len-1; i++) {String subString = S.substring(0, i);if (isHuiWen(subString)) {end = i;}}// 对 end 之后的字符,判断是否都为 l、q、bfor (int i=end; i<len; i++){if (S.charAt(i) != 'l' && S.charAt(i) != 'q' && S.charAt(i) != 'b') {return false;}}return true;}// 判断字符串 S 中从头开始的最长的回文字串// 1. gmgqlq//  gmg// 剩下的 qlq 可以变为回文// 2. pdlbll// p// 剩下的 dlbll 不能变为回文public static void main(String[] args) {Scanner in = new Scanner(System.in);int count = in.nextInt();for (int i=0; i<count; i++) {String S = in.next();if (isHuiWen(S)){System.out.println("Yes");} else if (canBeHuiWen(S)){System.out.println("Yes");} else {System.out.println("No");}}}
}

http://www.mrgr.cn/news/82233.html

相关文章:

  • 排序算法简单问题(Java)
  • 250103-逻辑操作符
  • 如何在 Windows 10/11 上录制带有音频的屏幕 [3 种简单方法]
  • 线性代数自学资源推荐我的个人学习心得
  • 在Yocto中增加时区文件
  • Linux下部署ElasticSearch集群
  • C++ —— 字符型和字符串
  • 作业:C高级:Day4
  • Ceph 手动部署(CentOS9)
  • Coding Our First Neurons
  • javaEE-多线程进阶-JUC的常见类
  • 设计模式 创建型 工厂模式(Factory Pattern)与 常见技术框架应用 解析
  • 升级Cypress到10.8.0
  • 【老白学 Java】Border 布局管理器
  • C++并发:在线程间共享数据
  • spring boot 异步线程池的使用
  • SpringCloud源码分析-Lettue Redis
  • shell脚本的【算数运算、分支结构、test表达式】
  • 03-类和对象(上)
  • SQL偏移类窗口函数—— LAG()、LEAD()用法详解
  • 单片机-蜂鸣器实验
  • vue视频录制 限制大小,限制时长
  • 思科无线控制器 AC5508 初始化
  • 操作系统课后题总复习
  • SpringCloud源码-Ribbon
  • Docker Compose编排