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

第十四届蓝桥杯第三期模拟赛原题与详解

​​​​​​​  

文章目录

一、填空题

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~

相关文章:

第十四届蓝桥杯第三期模拟赛原题与详解

​​​​​​​ 文章目录 一、填空题 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 题目描…...

client打包升级

目录 前言 一、client如何打包升级&#xff1f; 二、使用步骤 1.先进行改版本 2.执行打包升级命令 总结 前言 本文章主要记录一下&#xff0c;日常开发中&#xff0c;常需要进行打包升级的步骤。 一、client如何打包升级&#xff1f; # 升级发布版本 ## 修改版本 * 父p…...

Blazor_WASM之3:项目结构

Blazor_WASM之3&#xff1a;项目结构 Blazor WebAssembly项目模板可选两种&#xff0c;Blazor WebAssemblyAPP及Blazor WebAssemblyAPP-Empty 如果使用Blazor WebAssemblyAPP模板&#xff0c;则应用将填充以下内容&#xff1a; 一个 FetchData 组件的演示代码&#xff0c;该…...

OperWrt 包管理系统02

文章目录 OperWrt 包管理系统OPKG简介OPKG的工作原理OPKG命令介绍软件包的更新、安装、卸载和升级等功能软件包的信息查询OPKG配置文件说明OPKG包结构(.ipk)OPKG演示案例OperWrt 包管理系统 OPKG简介 OPKG(Open/OpenWrt Package)是一个轻量快速的软件包管理系统,是 IPKG…...

人人都学会APP开发 提高就业竞争力 简单实用APP应用 安卓浏览器APP 企业内部通用APP制作 制造业通用APP

安卓从2009年开始流程于手机、平板&#xff0c;已经是不争的非常强大生产力工具&#xff0c;更为社会创造非常高的价值&#xff0c;现在已经是202X年&#xff0c;已经十几年的发展&#xff0c;安卓平台已经无所不在。因此建议人人都学学APP制作&#xff0c;简易入门&#xff0c…...

【自然语言处理】从词袋模型到Transformer家族的变迁之路

从词袋模型到Transformer家族的变迁之路模型名称年份描述Bag of Words1954即 BOW 模型&#xff0c;计算文档中每个单词出现的次数&#xff0c;并将它们用作特征。TF-IDF1972对 BOW 进行修正&#xff0c;使得稀有词得分高&#xff0c;常见词得分低。Word2Vec2013每个词都映射到一…...

LIME: Low-light Image Enhancement viaIllumination Map Estimation

Abstract当人们在低光条件下拍摄图像时&#xff0c;图像通常会受到低能见度的影响。除了降低图像的视觉美感外&#xff0c;这种不良的质量还可能显著降低许多主要为高质量输入而设计的计算机视觉和多媒体算法的性能。在本文中&#xff0c;我们提出了一种简单而有效的微光图像增…...

源码指标编写1000问4

4.问: 哪位老师把他改成分析家的,组合公式&#xff1a;猎庄敢死队别样红(凤翔) {猎庄敢死队} rsv:(c-llv(l,9))/(hhv(h,9)-llv(l,9))100; stickline(1,50,50,1,0),pointdot,Linethick2,colorff00; k:sma(rsv,3,1); d:sma(k,3,1); rsv1:(hhv(h,9.8)-c)/(hhv(h,9.8)-llv(l,9.8))1…...

Golang中GC和三色屏障机制【Golang面试必考】

文章目录Go v1.3 标记—清楚(mark and sweep)方法Go V1.5 三色标记法三色标记过程无STW的问题强弱三色不变式插入写屏障Go V1.8的三色标记法混合写屏障机制混合写屏障场景场景1:对象被一个堆对象删除引用&#xff0c;成为栈对象的下游场景2:对象被一个栈对象删除引用&#xff0…...

MOS FET继电器(无机械触点继电器)设计输入侧电源时的电流值概念

设计输入侧电源时的问题 机械式继电器、MOS FET继电器分别具有不同的特长。基于对MOS FET继电器所具小型及长寿命、静音动作等优势的需求&#xff0c;目前已经出现了所用机械式继电器向MOS FET继电器转化的趋势。 但是&#xff0c;由于机械式继电器与MOS FET继电器在产品结构…...

5. 驱动开发

文章目录一、驱动开发1.1 前言1.2 何谓驱动框架1.3 内核驱动框架中LED的基本情况1.3.1 相关文件1.3.2 九鼎移植的内核中led驱动1.3.3 案例分析驱动框架的使用1.3.4 典型的驱动开发行业现状1.4 初步分析led驱动框架源码1.4.1 涉及到的文件1.4.2 subsys_initcall1.4.3 led_class_…...

模板方法模式详解

模板方法模式&#xff08;行为模式&#xff09; 1. 模板方法模式介绍 父类定义算法骨架&#xff0c;细节的具体实现延迟到子类子类只是定义某些自己的个性化处理&#xff0c;但不改变执行顺序 2. 好处 减少代码冗余&#xff0c;共性抽取后算法流程更加清晰与规范降低流程性…...

关于 Lightweight process container,ChatGPT的答案

晓楚 Can you give me a list of process container? As an AI language model, I can provide you with a list of popular process containers, which are as follows: Docker Kubernetes Apache Mesos LXC OpenVZ systemd-nspawn rkt (Rocket) Linux Containers (LXC) Ga…...

机器学习和深度学习的综述

机器学习和深度学习的综述 1.1.1人工智能、机器学习、深度学习的关系 人工智能&#xff08;Artificial Intelligence&#xff0c;AI&#xff09;是最宽泛的概念&#xff0c;是研发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。由于这个定义…...

Synopsys Sentaurus TCAD系列教程之--Sprocess(SmallMOS_2D3D) 解析

SmallMOS_2D3D解析 #header## STI depth set sti_depth 0.15 ## Half STI width set sti_width sti_width ## Half gate length set gate_len <lg/2> ## SD length (from center) set sd_len [expr $gate_len0.05]#endheader## X lines line x location 0.0 spacing 0.…...

好使!NAS中傻瓜式配置反向代理及SSL证书,提升网络安全性!

对于有NAS或者有个人主机的朋友来说&#xff0c;将机器映射到外网是基本操作。 但是一般来说&#xff0c;能直接从外网访问的往往仅有80和443端口。事实上&#xff0c;运营商一般把家庭宽带的这两个端口都封了&#xff0c;所以如果我们想要从外网访问自己家中机器部署的服务&a…...

数据结构队列-先进先出

一&#xff0c;概述 队列这个概念非常好理解。你可以把它想象成排队买票&#xff0c;先来的先买&#xff0c;后来的人只能站末尾&#xff0c;不允许插队。先进者先出&#xff0c;这就是典型的“队列”。 二&#xff0c;顺序队列和链式队列 队列和栈一样&#xff0c;也是一种…...

CentOS 7使用TiUP部署TiDB

本文主要是根据官方文档指导&#xff0c;结合实际主机情况&#xff0c;在Cent OS7上使用TiUP在线部署TiDB。 环境说明 类型操作系统版本配置中控机Deepin 20.34核CPU6G内存40G硬盘TiDB部署机Cent OS 7.38核CPU48G内存100硬盘网络情况中控机与外网相连&#xff0c;中控机与部署…...

java单元测试批处理数据模板【亿点点日志配合分页以及多线程处理】

文章目录引入相关资料环境准备分页查询处理&#xff0c;减少单次批量处理的数据量级补充亿点点日志&#xff0c;更易观察多线程优化查询_切数据版多线程_每个线程都分页处理引入 都说后端开发能顶半个运维&#xff0c;我们经常需要对大量输出进行需求调整&#xff0c;很多时候…...

【数据结构】模拟实现 堆

堆数据结构是一种数组对象&#xff0c;它可以被看作一颗完全二叉树的结构&#xff08;数组是完全二叉树&#xff09;&#xff0c;堆是一种静态结构。堆分为最大堆和最小堆。最大堆&#xff1a;每个父结点都大于孩子结点。最小堆&#xff1a;每个父结点都小于孩子结点。堆的优势…...

Java 语言特性(面试系列1)

一、面向对象编程 1. 封装&#xff08;Encapsulation&#xff09; 定义&#xff1a;将数据&#xff08;属性&#xff09;和操作数据的方法绑定在一起&#xff0c;通过访问控制符&#xff08;private、protected、public&#xff09;隐藏内部实现细节。示例&#xff1a; public …...

高频面试之3Zookeeper

高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个&#xff1f;3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制&#xff08;过半机制&#xff0…...

在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module

1、为什么要修改 CONNECT 报文&#xff1f; 多租户隔离&#xff1a;自动为接入设备追加租户前缀&#xff0c;后端按 ClientID 拆分队列。零代码鉴权&#xff1a;将入站用户名替换为 OAuth Access-Token&#xff0c;后端 Broker 统一校验。灰度发布&#xff1a;根据 IP/地理位写…...

【C语言练习】080. 使用C语言实现简单的数据库操作

080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...

Java线上CPU飙高问题排查全指南

一、引言 在Java应用的线上运行环境中&#xff0c;CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时&#xff0c;通常会导致应用响应缓慢&#xff0c;甚至服务不可用&#xff0c;严重影响用户体验和业务运行。因此&#xff0c;掌握一套科学有效的CPU飙高问题排查方法&…...

2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)

安全领域各种资源&#xff0c;学习文档&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具&#xff0c;欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...

NPOI操作EXCEL文件 ——CAD C# 二次开发

缺点:dll.版本容易加载错误。CAD加载插件时&#xff0c;没有加载所有类库。插件运行过程中用到某个类库&#xff0c;会从CAD的安装目录找&#xff0c;找不到就报错了。 【方案2】让CAD在加载过程中把类库加载到内存 【方案3】是发现缺少了哪个库&#xff0c;就用插件程序加载进…...

群晖NAS如何在虚拟机创建飞牛NAS

套件中心下载安装Virtual Machine Manager 创建虚拟机 配置虚拟机 飞牛官网下载 https://iso.liveupdate.fnnas.com/x86_64/trim/fnos-0.9.2-863.iso 群晖NAS如何在虚拟机创建飞牛NAS - 个人信息分享...

uniapp 集成腾讯云 IM 富媒体消息(地理位置/文件)

UniApp 集成腾讯云 IM 富媒体消息全攻略&#xff08;地理位置/文件&#xff09; 一、功能实现原理 腾讯云 IM 通过 消息扩展机制 支持富媒体类型&#xff0c;核心实现方式&#xff1a; 标准消息类型&#xff1a;直接使用 SDK 内置类型&#xff08;文件、图片等&#xff09;自…...

c# 局部函数 定义、功能与示例

C# 局部函数&#xff1a;定义、功能与示例 1. 定义与功能 局部函数&#xff08;Local Function&#xff09;是嵌套在另一个方法内部的私有方法&#xff0c;仅在包含它的方法内可见。 • 作用&#xff1a;封装仅用于当前方法的逻辑&#xff0c;避免污染类作用域&#xff0c;提升…...