第十四届蓝桥杯第三期模拟赛 C/C++ B组 原题与详解
文章目录
一、填空题
1、1 找最小全字母十六进制数
1、1、1 题目描述
1、1、2 题解关键思路与解答
1、2 给列命名
1、2、1 题目描述
1、2、2 题解关键思路与解答
1、3 日期相等
1、3、1 题目描述
1、3、2 题解关键思路与解答
1、4 乘积方案数
1、4、1 题目描述
1、4、2 题解关键思路与解答
1、5 最大连通块
1、5、1 题目描述
1、5、2 题解关键思路与解答
二、编程题
2、1 求星期几
2、1、1 题目描述
2、1、2 题解关键思路与解答
2、2 范围覆盖点数
2、2、1 题目描述
2、2、2 题解关键思路与解答
2、3 清理水草
2、3、1 题目描述
2、3、2 题解关键思路与解答
2、4 最大滑雪长度
2、4、1 题目描述
2、4、2 题解关键思路与解答
2、5 序号最小值
2、5、1 题目描述
2、5、2 题解关键思路与解答
标题:第十四届蓝桥杯第三期模拟赛原题与详解
作者:@Ggggggtm
寄语:与其忙着诉苦,不如低头赶路,奋路前行,终将遇到一番好风景
一、填空题
1、1 找最小全字母十六进制数
1、1、1 题目描述
题目来源:第十四届蓝桥杯第三期模拟赛
题目难度:简单
题目描述:请找到一个大于 2022 的最小数,这个数转换成十六进制之后,所有的数位(不含前导 0)都为字母(A 到 F)。请将这个数的十进制形式作为答案提交。
1、1、2 题解关键思路与解答
在填空题中,我们需要注意的是能省时间就省时间,有时候是没有必要写出一个完全计算该题的代码。 例如本题,我们先看2022的十六进制:
题目要求所有的数位(不含前导 0)都为字母(A 到 F),那么就是aaa了。直接出答案为:2730。当然,我们也可以写出解题代码。关键就是判断这个数%16是否在10和15之间即可。我们看代码:
bool check_vaild(int x)
{while (x) {if (x % 16 >= 10 && x % 16 <= 15);//当满足条件,我们什么也不用做,继续循环即可else {return false;}x /= 16;}return true;
}int main()
{for (int i = 2023; ; i++) {if (check_vaild(i)) {cout << i << "\n";break; //找到就停止即可}}return 0;
}
1、2 给列命名
1、2、1 题目描述
题目来源:第十四届蓝桥杯第三期模拟赛
题目难度:简单
题目描述:在 Excel 中,列的名称使用英文字母的组合。前 26 列用一个字母,依次为 A 到 Z,接下来 26*26 列使用两个字母的组合,依次为 AA 到 ZZ。请问第 2022 列的名称是什么?
1、2、2 题解关键思路与解答
我们先判断需要几个字母。26*26 < 2022 <26*26*26,很显然我们需要三个字母来表示。我们可以直接算出来答案的。2022-6-26*26-26*26=644(第一次减26是减去的一个字符的,第二次减去26*26是减去两个字母的,第三次减去26*26是减去三个字母中第一个字母为A的情况,也就是到三个字母中第一个字母为B的情况),当我们再减去26*26时,发现结果为-32,我们再往回数32个即可。答案即为:BYT。这道题我们暴力枚举也可。在考试中,能够想到的解决方法即为最优解决方法,尤其是填空题,不必太过追求算法效率。我们看代码:
#include <iostream>
#include <cstring>
#include <algorithm>using namespace std;int get(int x, int y, int z)
{return x * 26 * 26 + y * 26 + z;
}string str(int x, int y, int z)
{string s;s += 'A' + x - 1; //转换为字符形式s += 'A' + y - 1;s += 'A' + z - 1;return s;
}int main() {int n = 2022;for (int i = 1; i <= 26; i++)for (int j = 1; j <= 26; j++)for (int k = 1; k <= 26; k++)if (get(i, j, k) == n) {cout << str(i, j, k);return 0;}return 0;
}
1、3 日期相等
1、3、1 题目描述
题目来源:第十四届蓝桥杯第三期模拟赛
题目难度:简单
题目描述:对于一个日期,我们可以计算出年份的各个数位上的数字之和,也可以分别计算月和日的各位数字之和。请问从 1900 年 1 月 1 日至 9999 年 12 月 31 日,总共有多少天,年份的数位数字之和等于月的数位数字之和加日的数位数字之和。例如,2022年11月13日满足要求,因为 2+0+2+2=(1+1)+(1+3) 。请提交满足条件的日期的总数量。
1、3、2 题解关键思路与解答
本题答案为:70910。
该题要去看每个年份的年月日,似乎好像有点麻烦。我们不如把1900 年 1 月 1 日至 9999 年 12 月 31 日的日期转换为8位数的数字,再去枚举19000101到99991213之间的每个数字。我们需要先判断该数字是否为合法日期,再去判断年份的数位数字之和是否等于月的数位数字之和加日的数位数字之和。这样做下来似乎并不麻烦,我们看代码。
#include<iostream>
#include<algorithm>
#include<cstring>using namespace std;
int res;int days[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };
bool check_vaild(int year,int month,int day)
{if (month == 0 || month > 12)return false;if (day == 0)return false;if (month != 2){if (day > days[month])return false;}else{int leap = year % 400 == 0 || year % 4 == 0 && year % 100;if (day > days[month] + leap)return false;}return true;
}int main()
{for (int i = 19000101; i <= 99991213; i++){int year = i / 10000;int month = i % 10000 / 100;int day = i % 100;if (check_vaild(year, month, day)){int x=0, y=0, z=0;for (int i = 0; i < 4; i++){x += year % 10;year /= 10;}while (month){y += month % 10;month /= 10;}while(day){z += day % 10;day /= 10;}if (x == y + z)res++;}}cout<<res;return 0;
}
1、4 乘积方案数
1、4、1 题目描述
题目来源:第十四届蓝桥杯第三期模拟赛
题目难度:简单
题目描述:小蓝有 30 个数,分别为:99, 22, 51, 63, 72, 61, 20, 88, 40, 21, 63, 30, 11, 18, 99, 12, 93, 16, 7, 53, 64, 9, 28, 84, 34, 96, 52, 82, 51, 77 。小蓝可以在这些数中取出两个序号不同的数,共有 30*29/2=435 种取法。请问这 435 种取法中,有多少种取法取出的两个数的乘积大于等于 2022 。
1、4、2 题解关键思路与解答
本题答案为:189。
我们这个题应该没有什么好说的,直接暴力枚举即可。我们直接看代码:
#include <iostream>
#include <cstring>
#include <algorithm>using namespace std;int nums[31] = { 0, 99, 22, 51, 63, 72, 61, 20, 88, 40,21, 63, 30, 11, 18, 99, 12, 93, 16, 7, 53,64, 9, 28, 84, 34, 96, 52, 82, 51, 77 };int main() {int res = 0;for (int i = 1; i <= 30; i++)for (int j = i + 1; j <= 30; j++) {if (nums[i] * nums[j] >= 2022) {res++;}}cout << res;return 0;
}
1、5 最大连通块
1、5、1 题目描述
题目来源:第十四届蓝桥杯第三期模拟赛
题目难度:简单
题目描述:
110010000011111110101001001001101010111011011011101001111110 010000000001010001101100000010010110001111100010101100011110 001011101000100011111111111010000010010101010111001000010100 101100001101011101101011011001000110111111010000000110110000 010101100100010000111000100111100110001110111101010011001011 010011011010011110111101111001001001010111110001101000100011 101001011000110100001101011000000110110110100100110111101011 101111000000101000111001100010110000100110001001000101011001 001110111010001011110000001111100001010101001110011010101110 001010101000110001011111001010111111100110000011011111101010 011111100011001110100101001011110011000101011000100111001011 011010001101011110011011111010111110010100101000110111010110 001110000111100100101110001011101010001100010111110111011011 111100001000001100010110101100111001001111100100110000001101 001110010000000111011110000011000010101000111000000110101101 100100011101011111001101001010011111110010111101000010000111 110010100110101100001101111101010011000110101100000110001010 110101101100001110000100010001001010100010110100100001000011 100100000100001101010101001101000101101000000101111110001010 101101011010101000111110110000110100000010011111111100110010 101111000100000100011000010001011111001010010001010110001010 001010001110101010000100010011101001010101101101010111100101 001111110000101100010111111100000100101010000001011101100001 101011110010000010010110000100001010011111100011011000110010 011110010100011101100101111101000001011100001011010001110011 000101000101000010010010110111000010101111001101100110011100 100011100110011111000110011001111100001110110111001001000111 111011000110001000110111011001011110010010010110101000011111 011110011110110110011011001011010000100100101010110000010011 010011110011100101010101111010001001001111101111101110011101
小蓝有一个 30 行 60 列的数字矩阵,矩阵中的每个数都是 0 或 1 。如果从一个标为 1 的位置可以通过上下左右走到另一个标为 1 的位置,则称两个位置连通。与某一个标为 1 的位置连通的所有位置(包括自己)组成一个连通分块。请问矩阵中最大的连通分块有多大?
1、5、2 题解关键思路与解答
本题的答案为:148。
当遇到一个坐标可以影响到该坐标的上下左右四个坐标时,我们可以用下面方法来进行求取上下左右的各个坐标:
![]()
本题的方法就是暴搜,不断更新最大值即可,我们结合代码一起理解一下:
#include <iostream>
#include <cstring>
#include <algorithm>using namespace std;const int N = 35, M = 65;int n = 30, m = 60;
char arr[N][M];int dx[4] = { -1, 1, 0, 0 }, dy[4] = { 0, 0, -1, 1 };int dfs(int x, int y)
{int cnt = 1;arr[x][y] = '0';for (int i = 0; i < 4; i++) {int a = x + dx[i], b = y + dy[i];if (a <= n && a >= 1 && b <= m && b >= 1 && arr[a][b] == '1') {cnt += dfs(a, b);}}return cnt;
}int main()
{int res = 0;for (int i = 1; i <= n; i++)for (int j = 1; j <= m; j++)cin >> arr[i][j];for (int i = 1; i <= n; i++)for (int j = 1; j <= m; j++)if (arr[i][j] == '1')res = max(res, dfs(i, j));cout << res << "\n";return 0;}
二、编程题
2、1 求星期几
2、1、1 题目描述
题目来源:第十四届蓝桥杯第三期模拟赛
题目难度:简单
题目描述:给定一天是一周中的哪天,请问 n 天后是一周中的哪天?输入第一行包含一个整数 w,表示给定的天是一周中的哪天,w 为 1 到 6 分别表示周一到周六,w 为 7 表示周日。第二行包含一个整数 n。输出一行包含一个整数,表示 n 天后是一周中的哪天,1 到 6 分别表示周一到周六,7 表示周日。对于所有评测用例,1 <= n <= 1000000。
2、1、2 题解关键思路与解答
该题我可称它为“签到题”,分时一定要拿下,否则会吃大亏。我们直接看代码。
#include <iostream>
#include <cstring>
#include <algorithm>using namespace std;int main()
{int w, n;cin >> w >> n;if ((w + n) % 7 == 0)cout << '7' << endl;elsecout << (w + n) % 7 << endl;return 0;
}
2、2 范围覆盖点数
2、2、1 题目描述
题目来源:第十四届蓝桥杯第三期模拟赛
题目难度:简单
题目描述:小蓝负责一块区域的信号塔安装,整块区域是一个长方形区域,建立坐标轴后,西南角坐标为 (0, 0), 东南角坐标为 (W, 0), 西北角坐标为 (0, H), 东北角坐标为 (W, H)。其中 W, H 都是整数。
他在 n 个位置设置了信号塔,每个信号塔可以覆盖以自己为圆心,半径为 R 的圆形(包括边缘)。
为了对信号覆盖的情况进行检查,小蓝打算在区域内的所有横纵坐标为整数的点进行测试,检查信号状态。其中横坐标范围为 0 到 W,纵坐标范围为 0 到 H,总共测试 (W+1) * (H+1) 个点。
给定信号塔的位置,请问这 (W+1)*(H+1) 个点中有多少个点被信号覆盖。输入第一行包含四个整数 W, H, n, R,相邻整数之间使用一个空格分隔。
接下来 n 行,每行包含两个整数 x, y,表示一个信号塔的坐标。信号塔可能重合,表示两个信号发射器装在了同一个位置。输出一行包含一个整数,表示答案。
对于所有评测用例,1 <= W, H <= 100,1 <= n <= 100, 1 <= R <= 100, 0 <= x <= W, 0 <= y <= H。
2、2、2 题解关键思路与解答
本题给出的数据范围较小,我们可以直接采用暴力枚举的方法,时间复杂度度是可以通过的。我们直接枚举每个点位,看是否再信号塔的范围内。计算该点到信号塔的圆心处的距离是否小于等于半径的长度。在计算的时候不必使用sqrt函数进行开根号,直接与半径的平方进行比较即可。sqrt函数反而会损失精度,可能会造成误判。我们看代码。
#include <iostream>
#include <cstring>
#include <algorithm>using namespace std;typedef pair<int, int> PII;
#define x first
#define y secondconst int N = 110;int w, h, n, R;
PII a[N];int main()
{cin >> w >> h >> n >> R;for (int i = 0; i < n; i++) cin >> a[i].x >> a[i].y;int res = 0;for (int i = 0; i <= w; i++)for (int j = 0; j <= h; j++) {bool flag = false;while(n--) {int k = 0;if ((i - a[k++].x) * (i - a[k++].x) +(j - a[k++].y) * (j - a[k++].y) <= R * R) {flag = true;break; //当flag为true时,直接结束。也就是该点至少在一个信函探测器里面。}}if (flag) res++;}cout << res;return 0;
}
2、3 清理水草
2、3、1 题目描述
题目来源:第十四届蓝桥杯第三期模拟赛
题目难度:简单
题目描述:小蓝有一个 n * m 大小的矩形水域,小蓝将这个水域划分为 n 行 m 列,行数从 1 到 n 标号,列数从 1 到 m 标号。每行和每列的宽度都是单位 1 。现在,这个水域长满了水草,小蓝要清理水草。每次,小蓝可以清理一块矩形的区域,从第 r1 行(含)到第 r2 行(含)的第 c1 列(含)到 c2 列(含)。经过一段时间清理后,请问还有多少地方没有被清理过。
输入第一行包含两个整数 n, m,用一个空格分隔。
第二行包含一个整数 t ,表示清理的次数。
接下来 t 行,每行四个整数 r1, c1, r2, c2,相邻整数之间用一个空格分隔,表示一次清理。请注意输入的顺序。输出一行包含一个整数,表示没有被清理过的面积。
对于所有评测用例,1 <= r1 <= r2 <= n <= 100, 1 <= c1 <= c2 <= m <= 100, 0 <= t <= 100。
2、3、2 题解关键思路与解答
题目给出的数据范围较小,我们可以直接用暴力的方法去做。我们首先创建数组,给数组的每个值初始化成 1,然后再把清理的面积改成 0。最后把数组剩下的 1加起来即可。我们看代码。
#include<iostream>
#include<algorithm>
#include<cstring>using namespace std;int r1, c1, r2, c2;
int n, m, t;const int N = 110;int a[N][N];int main()
{cin >> n >> m;for (int i = 1; i <= n; i++)for (int j = 1; j <= m; j++)a[i][j] = 1; //1表示未清理过cin >> t;while (t--){cin >> r1 >> c1 >> r2 >> c2;for (int i = r1; i <= r2; i++)for (int j = c1; j <= c2; j++)a[i][j] = 0; //0表示已经被清理过}int res = 0;for (int i = 1; i <= n; i++)for (int j = 1; j <= m; j++)res += a[i][j];cout << res;return 0;
}
2、4 最大滑雪长度
2、4、1 题目描述
题目来源:第十四届蓝桥杯第三期模拟赛
题目难度:简单
题目描述:小蓝准备在一个空旷的场地里面滑行,这个场地的高度不一,小蓝用一个 n 行 m 列的矩阵来表示场地,矩阵中的数值表示场地的高度。
如果小蓝在某个位置,而他上、下、左、右中有一个位置的高度(严格)低于当前的高度,小蓝就可以滑过去,滑动距离为 1 。
如果小蓝在某个位置,而他上、下、左、右中所有位置的高度都大于等于当前的高度,小蓝的滑行就结束了。
小蓝不能滑出矩阵所表示的场地。
小蓝可以任意选择一个位置开始滑行,请问小蓝最多能滑行多远距离。输入第一行包含两个整数 n, m,用一个空格分隔。
接下来 n 行,每行包含 m 个整数,相邻整数之间用一个空格分隔,依次表示每个位置的高度。输出一行包含一个整数,表示答案。
对于 30% 评测用例,1 <= n <= 20,1 <= m <= 20,0 <= 高度 <= 100。
对于所有评测用例,1 <= n <= 100,1 <= m <= 100,0 <= 高度 <= 10000。
2、4、2 题解关键思路与解答
当遇到一个坐标可以影响到该坐标的上下左右四个坐标时,我们可以用下面方法来进行求取上下左右的各个坐标:
![]()
我们先看题目中给出的数据范围,数据范围较小,我们可以使用暴搜的方法求解。
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cstdio>using namespace std;const int N = 110;int n, m;
int g[N][N];
bool f[N][N];int dx[4] = { -1, 0, 1, 0 }, dy[4] = { 0, 1, 0, -1 };int dfs(int x, int y)
{int res = 0;for (int i = 0; i < 4; i++) {int a = x + dx[i], b = y + dy[i];if (a >= 1 && a <= n && b >= 1 && b <= m && !f[a][b] && g[x][y] > g[a][b]) {f[a][b] = true;res = max(res, dfs(a, b) + 1);//还原现场f[a][b] = false;}}return res;
}int main()
{scanf("%d%d", &n, &m);int res = 0;for (int i = 1; i <= n; i++)for (int j = 1; j <= m; j++)scanf("%d", &g[i][j]);for (int i = 1; i <= n; i++)for (int j = 1; j <= m; j++) {f[i][j] = true; //表示当前位置已经走过res = max(res, dfs(i, j));//还原现场f[i][j] = false;}cout << res + 1 << "\n";return 0;
}
2、5 序号最小值
2、5、1 题目描述
题目来源:第十四届蓝桥杯第三期模拟赛
题目难度:简单
题目描述:小蓝有一个序列 a[1], a[2], …, a[n]。给定一个正整数 k,请问对于每一个 1 到 n 之间的序号 i,a[i-k], a[i-k+1], …, a[i+k] 这 2k+1 个数中的最小值是多少?当某个下标超过 1 到 n 的范围时,数不存在,求最小值时只取存在的那些值。
输入的第一行包含一整数 n。
第二行包含 n 个整数,分别表示 a[1], a[2], …, a[n]。
第三行包含一个整数 k 。输出一行,包含 n 个整数,分别表示对于每个序号求得的最小值。
对于 30% 的评测用例,1 <= n <= 1000,1 <= a[i] <= 1000。
对于 50% 的评测用例,1 <= n <= 10000,1 <= a[i] <= 10000。
对于所有评测用例,1 <= n <= 1000000,1 <= a[i] <= 1000000。
2、5、2 题解关键思路与解答
经典模板题。首先暴力是通过不了的,能通过一部分测试用例,但是并不能通过全部测试用例。我们来看代码:
#include <iostream>
#include <algorithm>
#include <cmath>using namespace std;const int N = 1e6 + 10, M = 20;int n, k, t;
int q[N];
int f[N][M]; int query(int l, int r)
{int len = log(r - l + 1) / log(2); int x = f[l][len], y = f[r - (1 << len) + 1][len]; return q[x] > q[y] ? y : x;
}int main()
{cin >> n; for (int i = 1; i <= n; i++) scanf("%d", &q[i]); cin >> k;t = log(n) / log(2); for (int j = 0; j <= t; j++) { for (int i = 1; i + (1 << j) - 1 <= n; i++) { if (!j) f[i][j] = i; else { int l = f[i][j - 1], r = f[i + (1 << (j - 1))][j - 1]; if (q[l] > q[r]) f[i][j] = r; else f[i][j] = l; } } }int l, r; for (int i = 1; i <= n; i++) { l = max(1, i - k), r = min(n, i + k); cout << q[query(l, r)] << " ";}cout << endl;return 0;
}
以上就是蓝桥杯第十四届第三期模拟赛所有的题目了,希望本篇文章的讲解对你有所帮助,感谢阅读ovo~
相关文章:

第十四届蓝桥杯第三期模拟赛 C/C++ B组 原题与详解
文章目录 一、填空题 1、1 找最小全字母十六进制数 1、1、1 题目描述 1、1、2 题解关键思路与解答 1、2 给列命名 1、2、1 题目描述 1、2、2 题解关键思路与解答 1、3 日期相等 1、3、1 题目描述 1、3、2 题解关键思路与解答 1、4 乘积方案数 1、4、1 题目描述 1、4、2 题解关…...

Linux中断操作
一、thread_irq在内核中, 除了可以通过request_irq() 、 devm_request_irq()申请中断以外, 还可以通过以下二个函数申请( 它们比request_irq和devm_request_irq多了一个参数thread_fn)。 用这两个API申请中断的时候, 内核会为相应的中断号分配…...
看看CabloyJS是如何异步加载并执行go wasm模块的
介绍 CabloyJS提供了一个内置模块a-wasmgo,将go wasm模块的异步加载运行机制进行了封装,使我们可以非常方便的在CabloyJS项目中引入go wasm,从而支持更多的业务场景开发 下面,我们以测试模块test-party为例,演示引入…...

嵌入式C语言九大数据结构操作方式详解
在C语言的开发过程中,灵活使用数据结构,对提高编程效率有极大的帮助。 目录 1 数组 2 链表 3 跳表 4 栈 5 队列 6 树 7 堆 8 散列表 9 图 10 总结 数据结构想必大家都不会陌生,对于一个成熟的程序员而言,熟悉和掌握数据…...

【C++学习】栈 | 队列 | 优先级队列 | 反向迭代器
🐱作者:一只大喵咪1201 🐱专栏:《C学习》 🔥格言:你只管努力,剩下的交给时间! 栈 | 队列 | 优先级队列 | 反向迭代器😼容器适配器🙈什么是适配器ὤ…...

Python—看我分析下已经退市的 可转债 都有什么特点
分析 需求分析 可转债退市原因的种类与占比是多少 强赎与非强赎导致的退市可转债 存续时间 维度占比 强赎与非强赎导致的退市可转债 发行资金 规模占比 强赎与非强赎导致的退市可转债 各个评级 的占比 强赎与非强赎导致的退市可转债 各个行业(一级行业…...

【第八课】空间数据基础与处理——数据结构转化
一、前言 数据结构即指数据组织的形式,是适合于计算机存储、管理和处理的数据逻辑结构。对空间数据则是地理实体的空间排列方式和相互关系的抽象描述。它是对数据的一种理解和解释,不说明数据结构的数据是毫无用处的,不仅用户无法理解,计算机程序也不能正确地处理,对同样一组数…...

MATLAB绘制三Y轴坐标图:补充坐标轴及字体设置
三轴坐标图 1 函数 MATLAB绘制三轴图函数可见MATLAB帮助-multiplotyyy 基础图形绘制是很简单,但坐标轴及字体设置该如何实现呢? 本文以以下几个例子为例,希望可以解决在利用MATLAB绘制三轴坐标图时常见的疑惑。 2 案例 2.1 案例1…...

springboot项目中Quartz
下面内容大家可在自己创建的 springboot项目中 玩1 定时清理垃圾图片定时任务组件Quartz,可以根据我们设定的周期,定时执行目标任务计划1.1 Quartz介绍(了解)Quartz是Job scheduling(作业调度)领域的一个开源项目&…...

Presto本地开发,plugin的设置
1. 新的问题 之前搭建Presto的本地开发环境时,一直使用config.properties中的plugin.bundles配置项定义需要加载的plugin模块,详细可以参考博客《win10基于IDEA,搭建Presto开发环境》presto服务启动时,指定加载哪些组件ÿ…...

2023年3月西安/杭州/深圳/东莞NPDP产品经理认证考试报名
产品经理国际资格认证NPDP是国际公认的唯一的新产品开发专业认证,集理论、方法与实践为一体的全方位的知识体系,为公司组织层级进行规划、决策、执行提供良好的方法体系支撑。 【认证机构】 产品开发与管理协会(PDMA)成立于1979年…...

Vue3笔记01 创建项目,Composition API,新组件,其他
Vue3 创建Vue3项目 vue-cli //查看vue/cli版本,确保在4.5.0以上 vue --version //安装或升级vue/cli npm install -g vue/cli //创建项目 vue create new_project //启动 cd new_project npm run serve 也可以通过vue ui进入图形化界面进行创建 vite 新一代前端…...

pandas数据分析(二)
文章目录DataFrame数据处理与分析读取Excel文件中的数据筛选符合特定条件的数据查看数据特征和统计信息按不同标准对数据排序使用分组与聚合对员工业绩进行汇总DataFrame数据处理与分析 部分数据如下 这个数据百度可以搜到,就是下面这个 读取Excel文件中的数据 …...
Spring实现[拦截器+统一异常处理+统一数据返回]
Spring拦截器 1.实现一个普通拦截器 关键步骤 实现 HandlerInterceptor 接口重写 preHeadler 方法,在方法中编写自己的业务代码 Component public class LoginInterceptor implements HandlerInterceptor {/*** 此方法返回一个 boolean,如果为 true …...

MySQL——插入加锁/唯一索引插入死锁/批量插入效率
本篇主要介绍MySQL跟加锁相关的一些概念、MySQL执行插入Insert时的加锁过程、唯一索引下批量插入可能导致的死锁情况,以及分别从业务角度和MySQL配置角度介绍提升批量插入的效率的方法;MySQL跟加锁相关的一些概念在介绍MySQL执行插入的加锁过程之前&…...
【专项训练】数组、链表
数组array: list = []链表linked list # Definition for singly-linked list. class ListNode:def __init__(self, x):self.val = xself.next =...

基于Jeecgboot前后端分离的ERP系统开发代码生成(六)
商品信息原先生成的不符合要求,重新生成,包括一个附表商品价格信息表 一、采用TAB主题一对多的模式 因为主键,在online表单配置是灰的,所以不能进行外键管理,只能通过下面数据库进行关联录入,否则online界面…...

什么?同步代码块失效了?-- 自定义类加载器引起的问题
一、背景 最近编码过程中遇到了一个非常奇怪的问题,基于单例对象的同步代码块似乎失效了,百思不得其姐。 下面给出模拟过程和最终的结论。 二、场景描述和模拟 2.1 现象描述 Database实现单例,在 init 方法中使用同步代码块来保证 data不…...

CHAPTER 4 文件共享 - Samba
文件共享 - Samba1 Samba1.1 Samba的软件架构1.2 搭建Samba服务器1.3 samba用户管理1. 添加用户2. 修改用户密码3. 删除用户和密码4. 查看samba用户列表5. 查看samba服务器状态1.4 samba共享设置(配置文件详解)1.5 访问共享目录1. windows访问2. linux客…...

深入分析@Configuration源码
文章目录一、源码时序图1. 注册ConfigurationClassPostProcessor流程源码时序图2. 注册ConfigurationAnnotationConfig流程源码时序图3. 实例化流程源码时序图二、源码解析1. 注册ConfigurationClassPostProcessor流程源码解析(1)运行案例程序启动类Conf…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析
1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...

手游刚开服就被攻击怎么办?如何防御DDoS?
开服初期是手游最脆弱的阶段,极易成为DDoS攻击的目标。一旦遭遇攻击,可能导致服务器瘫痪、玩家流失,甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案,帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...

智慧医疗能源事业线深度画像分析(上)
引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...

RocketMQ延迟消息机制
两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数,对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后…...

Python:操作 Excel 折叠
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...

ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放
简介 前面两期文章我们介绍了I2S的读取和写入,一个是通过INMP441麦克风模块采集音频,一个是通过PCM5102A模块播放音频,那如果我们将两者结合起来,将麦克风采集到的音频通过PCM5102A播放,是不是就可以做一个扩音器了呢…...
Linux云原生安全:零信任架构与机密计算
Linux云原生安全:零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言:云原生安全的范式革命 随着云原生技术的普及,安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测,到2025年,零信任架构将成为超…...

【JavaWeb】Docker项目部署
引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...

听写流程自动化实践,轻量级教育辅助
随着智能教育工具的发展,越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式,也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建,…...
JS设计模式(4):观察者模式
JS设计模式(4):观察者模式 一、引入 在开发中,我们经常会遇到这样的场景:一个对象的状态变化需要自动通知其他对象,比如: 电商平台中,商品库存变化时需要通知所有订阅该商品的用户;新闻网站中࿰…...