第14届java A组蓝桥杯做题记录

A题 特殊日期

请添加图片描述

package Java14省赛.Java研究生组;import java.time.Year;
//特殊判断一下2月份,leaf 为true + 1
import java.util.*;import 蓝桥杯.dfs_n皇后;
public class 特殊日期 {static int sum(int d){int res = 0;while(d > 0){res += d % 10;d /= 10;}return res;}static boolean check(int y,int m,int d){return sum(y) == (sum(m) + sum(d));}public static void main(String[] args){int []month = {0,31,28,31,30,31,30,31,31,30,31,30,31};int ans = 0;for(int year = 1900;year < 10000;year++){boolean leaf = ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0));for(int m = 1;m <= 12;m ++){for(int d = 1;d <= month[m];d ++)if(check(year, m, d)) ans++;if(leaf && m == 2 && check(year, m, 29)) ans++;}}System.out.print(ans);	}
}

B题 与或异或

请添加图片描述


import java.util.*;
// 可以枚举op的序列,检验是否ans[4][0] == 1
//op的枚举树是个满三叉树
public class Main {static int cnt = 0;public static void main(String[] args){int[][] arr = new int[5][5];arr[0][0] = 1;arr[0][1] = 0;arr[0][2] = 1;arr[0][3] = 0;arr[0][4] = 1;dfs(arr,1,0);System.out.print(cnt);}static void dfs(int[][] arr,int i,int j){if(i == 5) {if(arr[4][0] == 1)cnt++; return;}for(int k = 0;k < 3;k++) {if(k == 0) arr[i][j] = arr[i - 1][j] & arr[i - 1][j + 1];else if(k == 1) arr[i][j] = arr[i - 1][j] | arr[i - 1][j + 1];else arr[i][j] = arr[i - 1][j] ^ arr[i - 1][j + 1];if(i + j == 4) dfs(arr, i + 1, 0);else dfs(arr, i, j + 1);}}
}

C题平均

请添加图片描述

import java.util.*;
public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int n=scanner.nextInt();int c=n/10;long sum=0;PriorityQueue<Integer>[] pqs=new PriorityQueue[10];for (int i = 0; i < 10; i++) {pqs[i]=new PriorityQueue<Integer>(); }for (int i = 0; i < n; i++) {int a=scanner.nextInt();int b=scanner.nextInt();pqs[a].add(b);}for (int i = 0; i < 10; i++) {while (pqs[i].size()>c) {sum+=pqs[i].poll();}}System.out.print(sum);}    
}

D题 棋盘

请添加图片描述

package Java14省赛.Java研究生组;import java.util.Scanner;// d[i][j] 代表着以(i,j)为顶点的数所有+1,
// 二维差分与二维前缀和相对应 
public class 棋盘 {static int N = 2010;static int[][] d = new int[N][N];public static void main(String[] args){Scanner scanner = new Scanner(System.in);int n = scanner.nextInt(),m = scanner.nextInt();for(int i = 0;i < m;i++){int x1 = scanner.nextInt(),y1 = scanner.nextInt();int x2 = scanner.nextInt(),y2 = scanner.nextInt();d[x1][y1] ++;d[x2 + 1][y2 + 1]++;d[x1][y2 + 1]--; d[x2 + 1][y1]--;}for(int i = 1;i <= n;i++)for(int j = 1;j <= n;j++)d[i][j] += (d[i - 1][j] + d[i][j - 1] - d[i - 1][j - 1]);for(int i = 1;i <= n;i++) {for(int j = 1;j <= n;j++)if(d[i][j] % 2 == 1) System.out.print(1);else System.out.print(0);System.out.println();}}
}

E 互质的个数

请添加图片描述

package Java14省赛.Java研究生组;
import java.util.*;
//phi(x) = x *.... *(i - 1)/ i;i 为质因数
//a^b的质因数与a的质因数相同
//试除法求a的质因数 x *.... *(i - 1)/ i
public class 互质的个数 {static int mod = 998244353;static long qmi(long a,long k){long res = 1;while(k > 0){if(k % 2 == 1) res = res * a % mod;a = a * a % mod;k >>= 1;}return res % mod;}public static void main(String[] args){Scanner scanner = new Scanner(System.in);long a = scanner.nextLong(),b = scanner.nextLong();long k = qmi(a, b - 1) % mod, ans = a;for(int i = 2;i <= a / i;i++){if(a % i == 0){while(a % i == 0) a /= i;ans = ans /i *(i - 1);}}if(a > 1) ans = ans / a *( a- 1);System.out.print(ans * k % mod);}
}

F阶乘的和

package Java14省赛.Java研究生组;//m如果有 n个且n % (m + 1) == 0,则最大因子至少因子是m + 1的阶乘
//如果有m如果有 n个但n % (m + 1) != 0,则最大因子是m import java.util.Scanner;public class  阶乘的和{public static void main(String[] args) {Scanner scan = new Scanner(System.in);int n = scan.nextInt();long[] arr = new long[n];long min = Integer.MAX_VALUE;long countMin = 0;for(int i = 0; i < arr.length; i++){arr[i] = scan.nextLong();min = Math.min(min, arr[i]);}while(true){countMin = countMin / min;for(int i = 0; i < arr.length; i++){if(arr[i] == min) countMin++;}if(countMin % (min + 1) == 0 && min != 0){min++;}else{break;}}scan.close();System.out.println(min);}
}
![请添加图片描述](https://img-blog.csdnimg.cn/direct/244cd2f88265415a84bd45588faf9022.png)

G题小蓝的旅行

请添加图片描述
a little 难写,先更思路

// 1.如果没有油箱限制,我们只需贪心从第i个加油站到第i+ 1个加油站
// 可以从前i个加油站中选择花费最小的即可,如果花费最小的加油站累计加油超过限制删除即可
// 2.有油箱限制的情况下,我们只需加上从j到i最大剩余量 + 加油量不能超过超过油箱
// 而在j加的油在j+1这些加油站的油箱都会整体上在j加油站上加油
// 我们树状数组维护的每个加油站的剩余油量,如果我从i到不了i + 1,我从中选择一个花费最少的j,
// 加油,加油有限制,不能超过加油站剩余的量和容量- Max[j , i]   ,
// 加完油,加油站的油量更新达到各个加油站的油量更新

H 太阳

请添加图片描述

package Java14省赛.Java研究生组;
import java.util.*;
// 由于太阳的高度大于线段计算出线段两端点在x坐标上的投影坐标
// 按照y的坐标降序Line查看是否区间覆盖
// 如何计算在x坐标上的投影? x1 - y1 * (x1 - x2) /(y1 - y2);
// 如何查看区间是否被覆盖呢?可以用Treemap表示,key 表示左边界,value表示右边界
// Treemap是底层红黑树,是有序的,可以轻易的找到比他只小一点的左边界,然后比较即可public class 太阳 {static TreeMap<Double, Double> map = new TreeMap<Double, Double>();static double shadow(double x1,double y1,double x2,double y2){return x1 - y1 * (x1 - x2) /(y1 - y2);}private static void addRange(double l,double r)//合并区间{var L = map.floorEntry(l);var R = map.floorEntry(r);if(L != null && l < L.getValue()) l = L.getKey();if(R != null && r < R.getValue()) r = R.getValue();map.subMap(l, r).clear();map.put(l, r);}public static boolean queryRange(double left, double right) {var l = map.floorEntry(left);return l != null && l.getValue() >= right;}public static void main(String[] args){Scanner scanner = new Scanner(System.in);int n = scanner.nextInt(),x = scanner.nextInt(),y = scanner.nextInt();List<Line> lines= new ArrayList<Line>();for(int i = 0;i < n;i++){int xi = scanner.nextInt(),yi = scanner.nextInt(),l = scanner.nextInt();lines.add(new Line(xi, yi, l));}lines.sort((l1,l2) -> Integer.compare(l2.y, l1.y));int res = 0;for(Line line:lines) {double l = shadow(line.lx,line.y, x, y);double r = shadow(line.rx,line.y, x, y);if(!queryRange(l, r)) res++;addRange(l, r);}System.out.println(res);}private static class Line {int lx, y, rx, length;public Line(int x, int y, int length) {this.length = length;lx = x;this.y = y;rx = x + length;}}
}

I高塔

请添加图片描述

package Java14省赛.Java研究生组;
// 如何处理组合数,这很重要
//C(n + m)(2 * n) * A[j](j =1 ~n) + [C(i + m)(2 * i) - C(i + m - 1)(2 * i) ]*=A[j]    (j =1 ~n)(i = 1 ~ n- 1)
// 上面的分析需用到生成函数,参考文章 https://blog.csdn.net/qq_44729222/article/details/130176129
//lucas定理,当a,b较大时,而p较小时
//C[a][b] = C[a / p][b / p] * C[a % p][b % p]
import java.util.*;public class 高塔
{static int N = 200100,mod = 998244353;static long[] A = new long[N];private static long lucas(long a, long b, int p) {if(a<p&&b<p) return C(a,b,p);return C(a%p,b%p,p)*lucas(a/p,b/p,p)%p;}private static long C(long a, long b,int p) {if(b>a) return 0;long res = 1,i,j;for(i = 1,j = a; i <= b; i ++, j--) {res = res*j%p;res = res*qmi(i,p-2,p)%p;}return res % mod;}private static long qmi(long a, int k, int m) {long res = 1;while(k!=0) {if((k&1)==1)res = res * a % m;a = a*a %m;k>>=1;}return res % mod;}public static void main(String[] args){Scanner scanner = new Scanner(System.in);int n = scanner.nextInt(), m = scanner.nextInt();A[0] = 1;long ans = 0;for(int i = 1;i <= n;i++) A[i] = A[i - 1] * scanner.nextLong() % mod;	//System.out.print(lucas(24, 18, mod));long tmp = m % mod;long qq = tmp * tmp % mod;for(int i = 1;i < n;i++){ans = (ans + A[i] * tmp) %mod;tmp = (tmp * ((qq + mod * 500 - i * i)%mod)%mod) * (qmi((long)(4 * i * i + 2 * i), mod - 2, mod)) % mod;}ans = ans + A[n] * lucas(m + n, 2 * n, mod) % mod;System.out.print(ans);}
}

试题J:反串或01串

请添加图片描述

占位

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

备战蓝桥杯Day40 - 第11届python组真题 - C跑步锻炼

一、题目描述 二、思路 1、使用datetime库中的方法可以很好的解决这个问题。 2、定义起始时间和结束时间&#xff0c;判断是否是周一或者是1号&#xff0c;结果res加上相应的里程数。 3、最后输出 res 即为本题答案。 三、代码实现 import datetimestart datetime.date(2…

NzN的数据结构--选择排序

接上文&#xff0c;本章我们来介绍选择排序。先三连后看才是好习惯~~~ 目录 一、基本思想 二、直接选择排序 三、堆排序 一、基本思想 每一次从待排序的数据元素中选出最小&#xff08;或最大&#xff09;的一个元素&#xff0c;存放在序列的起始位置&#xff0c;直到全部待…

前端工程化理解 (2024 面试题)

最好介绍远古世界最好随性一点&#xff0c;不要太刻板 &#xff0c;不然像背书 什么是前端工程化&#xff1f; - 知乎 前端工程化的历史 互联网初期&#xff0c;09 年以前&#xff0c;页面只需要展示一些列表、表格、文章内容以及简单图片即可&#xff0c;其目的是为了传送信…

SHOPFA:APP定制开发的哪种二开项目容易交付,哪些不可以接?

在商城系统开发领域&#xff0c;定制开发与二次开发&#xff08;二开&#xff09;是两种截然不同的项目类型。它们之间的主要差异体现在项目起点、灵活性、成本、时间以及风险等多个方面。 一、项目起点 商城定制开发通常是从零开始&#xff0c;根据客户的实际需求&#xff0c…

电介质材料(四)——复合电介质材料

本篇为西安交通大学本科课程《电气材料基础》的笔记。 本篇为这一单元的第四篇笔记&#xff0c;上一篇传送门。 复合电介质材料 是由多种成分共同组成&#xff0c;例如油纸复合绝缘、云母层压板、环氧浸渍玻璃纤维布等。即便是没有添加的材料&#xff0c;材料也会存在杂质和…

华为ensp中PPP(点对点协议)中的CHAP认证 原理和配置命令

作者主页&#xff1a;点击&#xff01; ENSP专栏&#xff1a;点击&#xff01; 创作时间&#xff1a;2024年4月11日6点00分 PPP协议&#xff08;Point-to-Point Protocol&#xff09;是点到点协议&#xff0c;是一种常用的串行链路层协议&#xff0c;用于在两个节点之间建立点…

地表蒸散发遥感产品信息提取验证与融合

原文链接&#xff1a;地表蒸散发遥感产品信息提取验证与融合https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247600962&idx4&sncb995f8ac85c3c0759da82a15520c118&chksmfa820aa5cdf583b306988fbb5795c6370dab52a2fde5cfa5a8566dd7ba2864cb651c9230c6f3&…

企业级开源路由系统VyOS-构建和使用

介绍 VyOS是一个基于Linux的企业级路由器操作系统&#xff0c;被许多公司和个人用来驱动物理网络设备&#xff0c;如路由器和防火墙。它有一个统一的命令行界面来管理其所有的网络相关功能&#xff08;和Juniper Junos操作很像&#xff09;。VyOS使用Debian GNU/Linux作为其基…

xss基础

第一关&#xff1a; html部分标签可以解析js <script>alert (1)</script> 第二关&#xff1a; 可以看到value用双引号闭合了&#xff0c;使用上一关的payload没用&#xff0c;尝试一下闭合这个input 所以使用双引号和>闭合后再加入上一关的payload 11"…

Shotcut:免费且开源的优质视频剪辑工具

Shotcut&#xff1a;您的专业级免费开源视频编辑利器&#xff0c;助您轻松实现创意无限的剪辑梦想&#xff01;- 精选真开源&#xff0c;释放新价值。 概览 Shotcut&#xff0c;一款广受赞誉的免费、开源跨平台视频编辑软件&#xff0c;以其卓越的功能性和易用性赢得了全球用户…

打造智能健身时代:健身房会员管理系统解析

随着健康意识的提升和生活水平的提高&#xff0c;健身行业正迎来蓬勃发展的时代。健身房作为人们锻炼身体的重要场所&#xff0c;其会员管理系统的优劣直接影响到健身房的运营效率和服务质量。本文将探讨健身房会员管理系统的重要性以及如何打造智能化的健身时代。 1. 会员信息…

【今日刷题】LeetCode 199.二叉树的右视图(中等)

今日刷题&#xff1a;LeetCode 199.二叉树的右视图&#xff08;中等&#xff09; 题目描述&#xff1a; 给定一个二叉树的 根节点 root&#xff0c;想象自己站在它的右侧&#xff0c;按照从顶部到底部的顺序&#xff0c;返回从右侧所能看到的节点值。 示例 1: 输入: [1,2,3,…

Mysql底层原理四:B+树索引

B树索引&#xff08;索引的原理&#xff09; 1.前言 前边我们详细唠叨了InnoDB数据⻚的7个组成部分&#xff0c;知道了各个数据⻚可以组成⼀个双向链表&#xff0c;⽽每个数据⻚中的记录会按照主键值从⼩到⼤的顺序组成⼀个单向链 表&#xff0c;每个数据⻚都会为存储在它⾥边…

Python球球大作战

文章目录 写在前面球球大作战程序设计注意事项写在后面 写在前面 安装pygame的命令&#xff1a; pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pygame球球大作战 《球球大作战》是一款简单易上手、充满趣味性和竞技性的休闲手游。游戏的核心玩法可以用一句话概…

(React Hooks)前端八股文修炼Day9

一 对 React Hook 的理解&#xff0c;它的实现原理是什么 React Hooks是React 16.8版本中引入的一个特性&#xff0c;它允许你在不编写类组件的情况下&#xff0c;使用state以及其他的React特性。Hooks的出现主要是为了解决类组件的一些问题&#xff0c;如复杂组件难以理解、难…

qt-C++笔记之QLabel加载图片

qt-C笔记之QLabel加载图片 —— 2024-04-06 夜 code review! 文章目录 qt-C笔记之QLabel加载图片0.文件结构1.方法一&#xff1a;把图片放在项目路径下&#xff0c;在 .pro 文件中使用 DISTFILES添加图片文件1.1.运行1.2.qt_test.pro1.3.main.cpp 2.方法二&#xff1a;不在 .pr…

《深入Linux内核架构》第2章 进程管理和调度 (2)

目录 2.4 进程管理相关的系统调用 2.4.1 进程复制 2.4.2 内核线程 2.4.3 启动新程序 2.4.4 退出进程 本专栏文章将有70篇左右&#xff0c;欢迎关注&#xff0c;订阅后续文章。 2.4 进程管理相关的系统调用 2.4.1 进程复制 1. _do_fork函数 fork vfork clone都最终调用_…

计算机网络 Telnet远程访问交换机和Console终端连接交换机

一、实验要求和内容 1、配置交换机进入特权模式密文密码为“abcd两位班内学号”&#xff0c;远程登陆密码为“123456” 2、验证PC0通过远程登陆到交换机上&#xff0c;看是否可以进去特权模式 二、实验步骤 1、将一台还没配置的新交换机&#xff0c;利用console线连接设备的…

数学建模-最优包衣厚度终点判别法-二(K-Means聚类)

&#x1f49e;&#x1f49e; 前言 hello hello~ &#xff0c;这里是viperrrrrrr~&#x1f496;&#x1f496; &#xff0c;欢迎大家点赞&#x1f973;&#x1f973;关注&#x1f4a5;&#x1f4a5;收藏&#x1f339;&#x1f339;&#x1f339; &#x1f4a5;个人主页&#xff…

OpenAI曾转录100万小时视频数据,训练GPT-4

4月7日&#xff0c;纽约时报在官网发布了一篇名为《科技巨头如何挖空心思&#xff0c;为AI收集数据》的技术文章。 纽约时报表示&#xff0c;OpenAI曾在2021年几乎消耗尽了互联网有用的文本数据源。为了缓解训练数据短缺的难题&#xff0c;便开发了知名开源语音识别模型Whispe…