蓝桥杯学习笔记(Java)
蓝桥杯学习笔记
兔唧唧不秃
这个作者很懒,什么都没留下…
展开
-
子串分值(Java)
子串分值(Java)分析每个字母的贡献 = (该字母当前的位置 - 上一次出现的位置)* (下一次出现的位置 - 该字母当前的位置)子串分值 = 各个位置字母的贡献之和问就是我也想不到这个方法😭但是,按我的理解这个公式是这样的:话不多说上代码public class Main{ //记录上一个出现的位置 static int pre[]; //记录下一个出现的位置 static int next[];原创 2022-02-26 22:28:00 · 588 阅读 · 2 评论 -
砝码称重(Java)
将砝码独立来看,在当前砝码称出重量x的情况下,对于砝码i都有三种操作:1. x+砝码i的重量(放同侧)2. x-砝码i的重量(放异侧)3. x(不放)显然前面两种操作才有可能产生不同的重量。另外砝码i一定能称出其自身的重量又考虑到set能够用于排除相等的元素由于砝码称出的重量是正的,因此将操作获得的结果取绝对值再放入集合中原创 2022-02-24 23:48:23 · 1887 阅读 · 0 评论 -
最短路问题(Dijkstra、Bellman-Ford、Floyd、SPFA)
最短路问题Dijkstra伪代码Bellman-FordFloydDijkstra(加点法)适用于边权为正的情况适用于有向图和无向图可用于计算正权图上的单源最短路,即从单个源点出发,到所有结点的最短路。伪代码清除所有点的标号设d[0] = 0,其他d[i] = INF循环n次{ 在所有未标号的结点中,选出d值最小的结点x 给结点x标记 对于从x出发的所有边(x,y),更新d[y] = min{d[y], d[x]+w(x,y)}} memset(v, 0, sizeof(v原创 2022-02-20 10:57:18 · 105 阅读 · 0 评论 -
没有上司的舞会——树状DP(Java)
题目分析输入:51 2 3 4 51 21 32 42 5输出:12首先建立对应的树依题意,不能同时选择孩子与双亲代码import java.util.Arrays;import java.util.Scanner;public class Main { final static int max = 100010; static class edge{ int to, next; public edge(int to, int next) { //原创 2022-02-20 10:02:18 · 447 阅读 · 0 评论 -
k好数(Java)
k好数资源限制时间限制:1.0s 内存限制:256.0MB问题描述如果一个自然数N的K进制表示中任意的相邻的两位都不是相邻的数字,那么我们就说这个数是K好数。求L位K进制数中K好数的数目。例如K = 4,L = 2的时候,所有K好数为11、13、20、22、30、31、33 共7个。由于这个数目很大,请你输出它对1000000007取模后的值。输入格式输入包含两个正整数,K和L。输出格式输出一个整数,表示答案对1000000007取模后的值。样例输入4 2样例输出7原创 2022-02-19 13:49:03 · 145 阅读 · 0 评论 -
最大最小公倍数
最大最小公倍数资源限制时间限制:1.0s 内存限制:256.0MB问题描述已知一个正整数N,问从1~N中任选出三个数,他们的最小公倍数最大可以为多少。输入格式输入一个正整数N。输出格式输出一个整数,表示你找到的最小公倍数。样例输入9样例输出504数据规模与约定1 <= N <= 10^6。分析贪心n个数的最小公倍数一定大于等于这n个数中任意一个数因此,1~N中任选三个数的最大最小公倍数应从最大的三个数开始考虑。可能出现以下几种情况:原创 2022-02-18 22:13:58 · 198 阅读 · 0 评论 -
区间k大数查询
区间k大数查询资源限制时间限制:1.0s 内存限制:256.0MB问题描述给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个。输入格式第一行包含一个数n,表示序列长度。第二行包含n个正整数,表示给定的序列。第三个包含一个正整数m,表示询问个数。接下来m行,每行三个数l,r,K,表示询问序列从左往右第l个数到第r个数中,从大往小第K大的数是哪个。序列元素从1开始标号。输出格式K大的数是哪个。序列元素从1开始标号。样例输入51 2 3 4 521 5 2原创 2022-02-17 12:08:46 · 126 阅读 · 0 评论 -
八、十、十六进制相互转换(Java)
八、十、十六进制相互转换十进制转十六进制常规做法快速做法十六进制转十进制常规做法快速做法十六进制转八进制常规做法快速做法十进制转十六进制常规做法import java.util.Scanner;public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc = new Scanner(System.in); String h[] =原创 2022-02-17 11:41:07 · 337 阅读 · 0 评论 -
Fibonacci数列(Java)
圆的面积资源限制时间限制:1.0s 内存限制:256.0MB问题描述Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。输入格式输入包含一个整数n。输出格式输出一行,包含一个整数,表示Fn除以10007的余数。说明:在本题中,答案是要求Fn除以10007的余数,因此我们只要能算出这个余数即可,而不需要先计算出Fn的准确值,再将计算的结果除以10007取余数,直接计算余数原创 2022-02-15 23:43:20 · 131 阅读 · 0 评论 -
圆的面积(Java)
圆的面积资源限制时间限制:1.0s 内存限制:256.0MB问题描述给定圆的半径r,求圆的面积。输入格式输入包含一个整数r,表示圆的半径。输出格式输出一行,包含一个实数,四舍五入保留小数点后7位,表示圆的面积。说明:在本题中,输入是一个整数,但是输出是一个实数。对于实数输出的问题,请一定看清楚实数输出的要求,比如本题中要求保留小数点后7位,则你的程序必须严格的输出7位小数,输出过多或者过少的小数位数都是不行的,都会被认为错误。实数输出的问题如果没有特别说明,舍入都是按四舍原创 2022-02-15 15:57:03 · 228 阅读 · 0 评论 -
01字串(Java)
序列求和资源限制时间限制:1.0s 内存限制:256.0MB问题描述对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是:0000000001000100001100100请按从小到大的顺序输出这32种01串。输入格式本试题没有输入。输出格式输出32行,按从小到大的顺序每行一个长度为5的01串。样例输出00000000010001000011<以下部分省略>方法一、public class Main{ p原创 2022-02-15 14:29:04 · 496 阅读 · 0 评论 -
蓝桥杯笔记
蓝桥杯笔记一、注意事项二、练习题基础练习一、注意事项注意Java的主类名必须是Main注意数据规模比如:A、B为整数且-10000 <= A,B <= 10000此时可以用int来接收A、B,但如果超过int的范围则要考虑其他方法来保存大数(Integer、long等)二、练习题基础练习试题编号试题名称BASIC-02...原创 2022-02-15 11:50:41 · 292 阅读 · 0 评论 -
序列求和(Java)
序列求和资源限制时间限制:1.0s 内存限制:256.0MB问题描述求1+2+3+…+n的值。输入格式输入包括一个整数n。输出格式输出一行,包括一个整数,表示1+2+3+…+n的值。样例输入4样例输出10样例输入100样例输出5050数据规模与约定1 <= n <= 1,000,000,000。方法一、import java.util.Scanner;public class Main { public static void原创 2022-02-15 11:47:47 · 407 阅读 · 0 评论