蓝桥杯2023年第十四届省赛真题------第十四届蓝桥杯本科A组/研究生组2023年省赛题解--全部采用Java语言实现

2023-10-27

引言

今天现在这里 挖个坑,太忙了,这个专题不一样有时间补完,但我会尽力而为的。记录一下今天的日子:2023/04/21
看看这个坑要什么时候自己才能补完。

题目pdf下载:第十四届蓝桥杯研究生组pdf下载

在此特别感谢博主int 我的文章参考

试题 A: 特殊日期

在这里插入图片描述
这道题没啥思路可言,就是简单的对日期进行判断,然后指导一下什么是闰年:

  1. 闰年即(能被4整除同时不能被100整除)||(能被400整除)
  2. 闰年有28天,平年有29天。

填空题,这是,因此答案是:35813063

package 蓝桥杯专题;

public class _2023试题A_特殊日期 {
	public static void main(String[] args) {
		int ans = 0;
		for (int i=2000;i<2000000;i++){
			for (int j=1;j<=12;j++){
				//对月进行区分
				//31天日子
				if ( j==1 ||j==3 ||j==5||j==7||j==8 ||j==10 ||j==12 ){
					for (int k=1;k<32;k++){
						if (i%j==0 && i%k==0){
							ans++;
						}
					}
				}
				//30天日子
				else if ( j==4 ||j==6 ||j==9||j==11){
					for (int k=1;k<31;k++){
						if (i%j==0 && i%k==0){
							ans++;
						}
					}
				}else {//即二月
					//是闰年
					if ((i%4==0&&i%100!=0) || i%400==0 ){
						for (int k=1;k<30;k++){
							if (i%j==0 && i%k==0){
								ans++;
							}
						}
					}
					//是平年
					else{
						for (int k=1;k<29;k++){
							if (i%j==0 && i%k==0){
								ans++;
							}
						}
					}

				}

			}
		}
		System.out.println(++ans);
	}
}

试题 B: 与或异或

在这里插入图片描述
在这里插入图片描述

简单来说,就是限制头上5个数为10101
然后10个选择,每个选择有3中情况,然后其中有多少种结果操作后,结果为1
pow(3,10)=59049,暴力模拟不可取,得动脑了。

填空题,这是,因此答案是:30528

package 蓝桥杯专题;

public class _2023试题B_与或异或01 {
	private static int dp[][] = new int[10][10];
	private static int map[][] = new int[10][10];
	private static int Status[] = new int[12];
	private static int sum = 0;

	public static void main(String[] args) {
		dp[0][1] = 1;
		dp[0][2] = 0;
		dp[0][3] = 1;
		dp[0][4] = 0;
		dp[0][5] = 1;
		DFS(1);
		System.out.println(sum);
	}

	private static void DFS(int x) {
		if (x == 11) {
			for (int i = 1; i <= 4; i++) {
				map[1][i] = Status[i];
			}
			for (int i = 1; i <= 3; i++) {
				map[2][i] = Status[i + 4];
			}
			for (int i = 1; i <= 2; i++) {
				map[3][i] = Status[i + 7];
			}
			for (int i = 1; i <= 1; i++) {
				map[4][i] = Status[10];
			}
		}
		for(int i=1;i<=4;i++){
			for(int j=1;j<=4-i+1;j++){
				if(map[i][j]==0) {
					dp[i][j]=dp[i-1][j]|dp[i-1][j+1];
				}
				if(map[i][j]==1) {
					dp[i][j]=dp[i-1][j]^dp[i-1][j+1];
				}
				if(map[i][j]==2) {
					dp[i][j]=dp[i-1][j]&dp[i-1][j+1];
				}
			}
		}
		if(dp[4][1]==1) {
			sum++;
		}

	}
}


特别说明一下:

由于Dotcpp上有对应的题目,以及测试渠道,后面的题目,我就不补充你那个题目详情了,大家可以移步那里观看。
https://www.dotcpp.com/oj/train/1096/

试题 C: 平均

由于这道题,我已经发过一篇文章,因此再这里就不再赘述,大家有需要,可以移步
试题 C: 平均
https://blog.csdn.net/weixin_43554580/article/details/130154949?spm=1001.2014.3001.5502

试题 D: 棋盘

由于这道题,我已经发过一篇文章,因此再这里就不再赘述,大家有需要,可以移步
试题 D: 棋盘
https://blog.csdn.net/weixin_43554580/article/details/130167554?spm=1001.2014.3001.5502

试题 E: 互质数的个数

由于这道题,我已经发过一篇文章,因此再这里就不再赘述,大家有需要,可以移步
试题 E: 互质数的个数
https://blog.csdn.net/weixin_43554580/article/details/130236509?spm=1001.2014.3001.5502

试题 F: 阶乘的和

2023/04/22 暂时还没完全解出来,,,,

2023/04/24日,卧槽了!!!写了好多这道题的分析,因为是直接对着原文编辑的,不能暂存,当时卡了一下,我就傻逼,直接刷新了!!!卧槽!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

2023/04/29 没能完全通过,具体思路可以参考:
题目 3166: 蓝桥杯2023年第十四届省赛真题-阶乘的和–不能完全通过,最好情况通过67.

https://blog.csdn.net/weixin_43554580/article/details/130438997?spm=1001.2014.3001.5501

试题 G: 小蓝的旅行计划

2023/04/23 没太搞懂这道题,感觉应该是用优先队列+DFS,从可以全每一次都加满油的情况出发,开始遍历寻找出最优解= =~

2023/04/30日,在此祝大家五一快乐哟!!!
题解已发布,大家可以跳转参考。
https://blog.csdn.net/weixin_43554580/article/details/130451007?spm=1001.2014.3001.5501

package 蓝桥__真题__专题;

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

public class 蓝桥杯2023年第十四届省赛真题__小蓝的旅行计划 {
	private static int maxn = 200005,n,m,inf = (int)1e9;
	private static long INF = (long)2e18,ans = 0,mod = (int)1e9+7;
	private static int rest[] = new int [maxn<<2];
	private static int k[] = new int [maxn<<2];
	private static int dis[] = new int [maxn];
	private static int lim[] = new int [maxn];
	private static int cost[] = new int [maxn];
	private static int vol = 0;
	static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
	static StreamTokenizer st = new StreamTokenizer(br);
	static int nextInt() throws Exception {st.nextToken();return (int) st.nval;}
	static long nextLong() throws Exception {st.nextToken();return (long) st.nval;}
	static PrintWriter pw = new PrintWriter(new OutputStreamWriter(System.out));

	public static void main(String[] args) throws Exception {
		Scanner scanner = new Scanner(System.in);
		int T = 1;
		while (T -- > 0){   //进入开始执行函数体
			n = nextInt();
			m = nextInt();
			vol = m;
			PriorityQueue<gas> queue = new PriorityQueue<gas>();
			for (int i=1;i<=n;i++){
				dis[i] = nextInt();
				cost[i] = nextInt();
				lim[i] = nextInt();
			}
			BuildGas(1,1,n);
			for (int i=1;i<=n;i++){
				vol -=dis[i];
				while (vol < 0){
					if (queue.isEmpty()){   //如果不能完成
						pw.println(-1);
						return;
					}
					gas cur_gas = queue.poll();
					int cnt = Math.min(m-query(i,1,n,cur_gas.id_gas,i-1),lim[cur_gas.id_gas]);
					if (cnt<=0){
						continue;
					}
					if (cnt <= -vol){
						ans+=cur_gas.cost_gas *cnt;
						vol += cnt;
						lim[cur_gas.id_gas] = 0;
						AddGas(1,1,n,cur_gas.id_gas,i-1,cnt);
					}
					else {
						ans += cur_gas.cost_gas * (-vol);
						lim[cur_gas.id_gas] = cnt+vol;
						AddGas(1,1,n,cur_gas.id_gas,i-1,-vol);
						queue.add(new gas((long) cur_gas.id_gas, (int) cur_gas.cost_gas));
						vol = 0;
					}
				}//while (vol < 0)
				if (vol>0){
					AddGas(1,1,n,i,i,vol);
					lim[i] = Math.min(lim[i],m-vol);
					queue.add(new gas(i,cost[i]));
				}
				pw.println(ans);
			}//for (int i=1;i<=n;i++)
		}//while (T -- > 0){   //进入开始执行函数体
		pw.flush();
	}//public static void main(String[] args)

	private static void AddGas(int i, int left, int right, int id_left, int id_right, int volumn) {
		if (id_left <=1 && right <= id_right){
			rest[i]+=volumn;
			k[i]+=volumn;
			return;
		}
		rotate(i);
		int mid = left + (right-left)/2;
		if (mid >= id_left){
			AddGas(i<<1,left,mid,id_left,id_right,volumn);
			//res = Math.max(res,query(i<<1,left,mid,id_left,id_right));
		}
		if (mid < id_right){
			AddGas(i<<1|1,mid+1,right,id_left,id_right,volumn);
			//res = Math.max(res,query(i<<1|1,mid+1,right,id_left,id_right));

		}
		UpGas(i);
	}//private static void AddGas(int i, int left, int right, int id_left, int id_right, int volumn)

	private static int query(int i, int left, int right, int id_left, int id_right) {
		if (id_left <= left && right <= id_right){  //保住了,则直接返回即可。
			return rest[i];
		}
		rotate(i);
		int res = 0;
		int mid = left + (right-left)/2;
		if (mid >= id_left){
			res = Math.max(res,query(i<<1,left,mid,id_left,id_right));
		}
		if (mid < id_right){
			res = Math.max(res,query(i<<1|1,mid+1,right,id_left,id_right));

		}
		UpGas(i);
		return res;
	}//private static int query(int i, int left, int right, int id_left, int id_right) {

	private static void rotate(int i) {
		if (k[i] != 0){
			k[i<<1] += k[i];
			k[i<<1 |1] +=k[i];
			rest[i<<1] +=k[i];
			rest[i<<1|1] +=k[i];
			k[i] =0;
		}
	}//private static void rotate(int i)

	private static void BuildGas(int i, int l, int r) {
		if (l == r){
			rest[i] = 0;    //到达时油量
			return;
		}
		int mid = l+(r-l)/2;
		BuildGas(i<<1,l,mid);
		BuildGas(i<<1|1,mid+1,r);
		UpGas(i);

	}//private static void BuildGas(int i, int l, int r)

	private static void UpGas(int i) {
		rest[i] = Math.max(rest[i<<1],rest[i<<1|1] );
	}//private static void UpGas(int i)

	private static class gas implements Comparable<gas>{
		//汽油要记录是哪家店加的油,然后加油花费
		long cost_gas;
		int id_gas;

		public gas(long cost_gas, int id_gas) {
			this.cost_gas = cost_gas;
			this.id_gas = id_gas;
		}

		@Override
		public int compareTo(gas o) {
			return this.cost_gas - o.cost_gas >0 ?1:-1;
		}
	}//private static class gas implements Comparable<gas>

}//public class 蓝桥杯2023年第十四届省赛真题__小蓝的旅行计划

试题 H: 太阳

2023/05/05:
这道题还是不咋会,只能提供一个普通人的会超时的思路,在此就不贴出代码了
因为收效胜微,得分只有23分,且结果有超时,也有错误。:

解题思路:

解题思路:

  1. 首先确定太阳的位置
  2. 判断当前线段的x,y的两端两个值的情况判断是否完全被遮住,没被遮住就ans++
  3. 通过获取到的每条线段的情况,这里需要构建一个二维数组取模拟出线段,比如说线段长度的地方,全部用1去填充,表明这是一天线段
  4. 从最大的y_i,即最高处的线段开始,计算斜率
  5. 通过太阳与当前线段的两头斜率,然后向下层的线段去延伸,然后令下层覆盖到的地方的线段全部填充0;
  6. 然后去访问下层的情况,用2.的方法去进行判断,以此类推,

试题 I: 高塔

留个空。先

试题 J: 反异或 01 串

日期:2023年5月16日
由于这道题,我已经发过一篇文章,因此再这里就不再赘述,大家有需要,可以移步
试题 J: 反异或 01 串
https://blog.csdn.net/weixin_43554580/article/details/130699777?spm=1001.2014.3001.5501

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

蓝桥杯2023年第十四届省赛真题------第十四届蓝桥杯本科A组/研究生组2023年省赛题解--全部采用Java语言实现 的相关文章

随机推荐

  • EVE上传Dynamips、IOL和QEMU镜像

    1 镜像保存目录 opt unetlab addons dynamips Dynamips镜像保存目录 iol IOL镜像保存目录 运行IOU的镜像 qemu QEMU镜像 运行ASAv ISE F5等等镜像 2 上传dynamips镜像
  • 机器学习实战笔记(Python实现)-02-k近邻算法(kNN)

    k近邻算法 kNN 本博客来源于CSDN http blog csdn net niuwei22007 article details 49703719 本博客源代码下载地址 CSDN免费下载 GitHub下载地址 均带有详细注释和测试数据
  • C语言 指针

    1 变量的地址 变量对应内存中的一段存储空间 该段存储空间占用一定的字节数 可能是 1个字节 也可能是 4 或是 8 个字节 用这段存储空间的第一个字节的地址表示变量的地址 即低位字节的地址 变量的地址 可以通过 Reference 引用运
  • Linux内核-中断知识汇总(重温)

    1 概述 中断控制是计算机发展中一种重要的技术 最初它是为克服对I O接口控制采用程序查询所带来的处理器低效率而产生的 中断控制的主要优点是只有在I O需要服务时才能得到处理器的响应 而不需要处理器不断地进行查询 由此 最初的中断全部是对外
  • 整理了几个100%会踩的Python细节坑,提前防止脑血栓

    B站 公众号 啥都会一点的研究生 哈喽我是啥都生 本期整理了几个极易忽视的Python细节 提前了解 帮你大幅缩短debug时间 case 1 给你三秒钟 告诉我这段程序的结果 case1 9 8 7 3 2 2 case1 case1 a
  • Base64的Woff2字体信息如何转成成文件

    这里是借助在线的Base64和字体文件转换网站来完成的 首先用到的是https base64 guru converter 将Base64的字符串的 base64 后的部分拷贝到右侧Base64文本区 然后点击Decode Base64 t
  • JetBrains IDE2022全新UI偷跑版本-windows11

    文章目录 前言 1 双击shift 输入registry 切换到Actions选项卡 点击进入注册表 2 勾选ide expermental 相关选项 点击close重启idea 3 重启后进入setting gt Edirot gt Co
  • Vue生命周期与性能优化

    生命周期 beforeCreate 在 Vue 实例初始化之后 数据观测 data observer 之前被调用 created 实例已创建完成之后被调用 在这一步 实例已完成这几个配置 数据观测 属性和方法的运算 watch event
  • 前端工具:识别手机号码是否正确

    很简单 就是用正则来识别 不过要注意的是每年通信公司可能会开放新的号段或者是虚拟号 需要及时更新 isMobileNumber function mobile if 0 86 17951 13 0 9 15 012356789 17 0 8
  • MCM线性规划(二)

    Matlab code clc clear a 0 hold on 保持原图并接受此后绘制的新的曲线 while a lt 0 05 f 0 05 0 27 0 19 0 185 0 185 A 0 0 025 0 0 0 0 0 0 01
  • Qt的子窗口和父窗口阻塞问题

    在图形界面中 软件设计者通常需要将活跃窗口限制为一个 在某个窗口活跃时 它的父窗口被它挡住或者挡住一部分 这时候用鼠标去点击父窗口是没有作用的 问题的关键在于将子窗口设置模态 1 void MainWindow on pushButton
  • zi2zi Learning Chinese Character style with conditional GAN 相关解读

    1 zi2zi地址 github 2 网络结构 3 可能需要注意的问题 1 Constant Loss 主要根据参考文献 DTN 主要计算方法 const loss tf reduce mean tf square encoded real
  • STM32F103 入门篇 13-GPIO输入-按键检测

    PA0 PC13同时还具有唤醒功能 上升沿 电容作用 按键按下后会有20ms的抖动 待稳定后通过地线导出 驱动函数 初始化GPIO 使用浮空输入 STM32的四种输入方式 1 上拉输入 GPIO Mode IPU 上拉输入就是信号进入芯片后
  • react中redux的介绍与使用

    1 redux是什么 1 redux是一个专门用于做状态管理的js库 不是react插件库 2 它可以用在react angular vue等项目中 但基本与react配合使用 3 作用 集中式管理react应用中多个组件共享的状态 4 r
  • Laravel 远程代码执行漏洞(CVE-2021-3129)复现

    Laravel 远程代码执行漏洞 CVE 2021 3129 复现 一 漏洞概述 Laravel是一套简洁 优雅的PHP Web开发框架 PHP Web Framework 它可以让你从面条一样杂乱的代码中解脱出来 它可以帮你构建一个完美的
  • 全球及中国工程机械行业营销模式及销售格局分析报告2021-2027年版

    全球及中国工程机械行业营销模式及销售格局分析报告2021 2027年版 HS HS HS HS HS HS HS HS HS HS HS HS HS HS 修订日期 2021年10月 搜索鸿晟信合研究院查看官网更多内容 第一章 工程机械行业
  • 1305. 两棵二叉搜索树中的所有元素(中序遍历)

    给你 root1 和 root2 这两棵二叉搜索树 请你返回一个列表 其中包含 两棵树 中的所有整数并按 升序 排序 示例 1 输入 root1 2 1 4 root2 1 0 3 输出 0 1 1 2 3 4 示例 2 输入 root1
  • 刷脸支付更好地实现了社会资源的协同

    从移动支付到刷脸支付 争体验更是争用户入口 2年前 谈到移动支付 包括许多巨型公司 都只认为它不过是一个收款的入口 方便快捷 不必找零 消费者爱用 企业好清算对账 而如今 移动支付正在演变为各类本地生活服务的重要入口 各路巨头也不断加持 微
  • ISE约束文件UCF与Vivado约束文件XDC(FPGA不积跬步101)

    ISE约束文件UCF与Vivado约束文件XDC FPGA不积跬步101 随着FPGA技术的日益成熟 越来越多的工程师选择使用FPGA进行嵌入式系统的设计和开发 在FPGA的设计中 约束文件的编写是非常重要的一环 而在约束文件的编写中 IS
  • 蓝桥杯2023年第十四届省赛真题------第十四届蓝桥杯本科A组/研究生组2023年省赛题解--全部采用Java语言实现

    引言 今天现在这里 挖个坑 太忙了 这个专题不一样有时间补完 但我会尽力而为的 记录一下今天的日子 2023 04 21 看看这个坑要什么时候自己才能补完 题目pdf下载 第十四届蓝桥杯研究生组pdf下载 在此特别感谢博主int 我的文章参