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

蓝桥杯刷题——第十五届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组

一、0握手问题 - 蓝桥云课

算法代码:

#include <iostream>
using namespace std;
int main()
{int sum=0;for(int i=49;i>=7;i--)sum+=i;cout<<sum<<endl;return 0;
}

直接暴力,题意很清晰,累加即可。 

二、0小球反弹 - 蓝桥云课

算法代码: 

#include<iostream>  // 引入输入输出流库,用于标准输入输出操作
#include<iomanip>    // 引入输入输出操纵库,用于格式化输出(如设置小数点精度)
#include<cmath>      // 引入数学函数库,用于数学运算(如平方根)using namespace std; // 使用标准命名空间,避免每次调用标准库函数时都要加std::// 定义一个函数check,用于检查两个整数a和b是否满足特定条件
bool check(int a, int b) {// 如果a能被b整除,并且a除以b的结果是偶数,则返回trueif (a % b == 0 && (a / b) % 2 == 0) return true;return false;  // 否则返回false
}// 主函数
int main() {long long x = 343720, y = 233333;  // 定义两个长整型变量x和y,并赋予初始值long long t = 1;  // 定义长整型变量t,并初始化为1long long lx, ly;  // 定义两个长整型变量lx和ly,用于存储计算过程中的临时值// 进入一个无限循环,直到满足特定条件时跳出循环while (1) {lx = 15 * t;  // 计算lx为15乘以tly = 17 * t;  // 计算ly为17乘以t// 如果lx和x满足check函数的条件,且ly和y也满足check函数的条件,则跳出循环if (check(lx, x) && check(ly, y)) break;t++;  // 否则,t自增1,继续循环}// 输出lx和ly的平方和的平方根,保留两位小数cout << setprecision(2) << fixed << sqrt(lx * lx + ly * ly);return 0;  // 程序正常结束,返回0
}

问题背景

  1. 小球运动

    • 小球在长方形内以固定的速度比 dx:dy=15:17运动。

    • 当小球碰到长方形的边框时,会发生反弹(入射角等于反射角)。

    • 我们需要计算小球第一次回到起点时所经过的总路径长度。

  2. 反弹的等效路径

    • 反弹问题可以通过“镜像反射法”简化。将长方形无限复制,形成一个网格,小球的路径可以看作一条直线穿过这些镜像长方形。

    • 小球第一次回到起点,等价于这条直线第一次穿过一个镜像长方形的左上角顶点。


数学分析

  1. 路径条件

    • 小球在水平方向(长)移动的总距离必须是长方形长度 x=343720 的偶数倍。这是因为每次反弹都会改变方向,只有偶数倍才能让小球回到起点的水平位置。

    • 同理,小球在垂直方向(宽)移动的总距离必须是长方形宽度 y=233333 的偶数倍。

  2. 公式推导

    • 小球在水平方向的移动距离为 lx=15t。

    • 小球在垂直方向的移动距离为 ly=17t。

    • 为了满足回到起点的条件,必须同时满足:

      lx=15t=2k⋅x(水平方向)ly=17t=2m⋅y(垂直方向)

      其中 k 和 m 是正整数。

  3. 简化条件

    • 我们需要找到最小的 t,使得 15t 是 x 的偶数倍,且 17t是 y的偶数倍。

    • 这等价于:

setprecision(2) 是 C++ 标准库 <iomanip> 中的一个操纵符,用于设置浮点数输出的精度。具体来说,它控制输出流中浮点数的小数点后的位数。

详细解释

  • setprecision(n):设置浮点数输出的小数点后的位数为 n。例如,setprecision(2) 表示输出浮点数时保留两位小数。

  • fixed:与 setprecision 结合使用,表示使用固定小数格式输出。这意味着小数点后的位数是固定的,而不是科学计数法。

三、0好数 - 蓝桥云课 

算法代码:

#include <stdio.h>
int main()
{int n, i;scanf("%d", &n);  // 输入一个整数 nfor (; n > 0; n--)  // 从 n 开始,递减到 1{for (int m = n; m > 0;)  // 对每个数字 m = n,检查其每一位{if (m % 2 != 0) m /= 10;  // 如果最低位是奇数,去掉最低位else break;  // 如果最低位是偶数,退出循环if (m % 2 == 0) m /= 10;  // 如果新的最低位是偶数,去掉最低位else break;  // 如果新的最低位是奇数,退出循环if (m == 0) i++;  // 如果 m 变为 0,说明满足条件,计数器 i 增加}}printf("%d", i);  // 输出满足条件的数字的数量return 0;
}

        题意清晰,直接一个一个数地循环递减,然后按规则,直接判断奇数位和偶数位是不是符合条件。

四、0R 格式 - 蓝桥云课

自己写的:算法代码(只能通过50%的测试用例) 

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;// 快速幂函数,计算 2^n
ll fastPow(int n) {ll a = 2;  // 底数为 2ll sum = 1;  // 初始化 sum 为 1while (n) {if (n & 1) {sum = sum * a;  // 如果当前位为 1,累乘到 sum}a = a * a;  // 底数平方n >>= 1;  // 右移一位}return sum;
}int main() {int n;double d;cin >> n >> d;  // 输入 n 和 dll ans = fastPow(n);  // 计算 2^nll end_format = round(d * ans);  // 将 d 乘以 2^n 并四舍五入//round 函数用于对浮点数进行四舍五入操作printf("%lld\n", end_format);  // 输出结果return 0;
}

 罗勇军老师的几行代码(50%)(高下立判了属于是哈哈)算法代码:

#include <bits/stdc++.h>
using namespace std;
int main()
{    long long n;    double s;    cin>>n>>s;    long long  a = 1<<n;    long long b= (long long)(a*s*1.0+0.5);//加0.5四舍五入    cout << b;
}

题解:

#include<bits/stdc++.h>  // 包含所有标准库头文件
using namespace std;     // 使用标准命名空间int main()
{int n;string d;    // 由于数字可能非常大,使用字符串来读取cin >> n >> d;  // 输入转换参数 n 和浮点数 dvector<int> b;  // 使用 vector 来存储数字的每一位,方便处理进位int sum = 0, k = 0;  // sum 用于记录总位数,k 用于记录小数点的位置// 从字符串末尾开始遍历,将字符转换为整数并存储到 vector 中for(int i = d.size() - 1; i >= 0; i--){if(d[i] != '.')b.push_back(d[i] - '0');  // 将字符转换为整数并存储else {k = sum;  // 记录小数点的位置}sum++;  // 记录总位数}int u = b.size();  // 记录当前数字的位数// 进行 n 次乘以 2 的操作while(n--){int t = 0;  // t 用于记录进位for(int i = 0; i < b.size(); i++){b[i] = b[i] * 2 + t;  // 当前位乘以 2 并加上进位if(b[i] >= 10){t = b[i] / 10;  // 计算新的进位b[i] = b[i] % 10;  // 取余数作为当前位的值}else {t = 0;  // 如果没有进位,置为 0}}if(t)  // 如果最后还有进位,添加到 vector 中b.push_back(t);}u = b.size();  // 更新数字的位数int t = 1;  // 用于处理四舍五入的进位if(k && b[k - 1] >= 5)  // 如果需要四舍五入{for(int i = k; i < u; i++){b[i] = b[i] + 1;  // 当前位加 1if(b[i] <= 9) {  // 如果不需要继续进位t = 0;break;}else {b[i] -= 10;  // 如果需要继续进位}}if(t)  // 如果最后还有进位,添加到 vector 中b.push_back(t);}// 从最高位开始输出结果,忽略小数部分for(int i = b.size() - 1; i >= k; i--)cout << b[i];return 0;  // 程序结束
}

1. 输入处理

  • 输入:读取整数 n 和浮点数 d

    • n 是转换参数,表示需要将浮点数乘以 2^n。

    • d 是待转换的浮点数,可能非常大,因此用字符串存储。

  • 目标:将浮点数 d 转换为整数形式,方便后续计算。


2. 将浮点数转换为整数形式

  • 遍历浮点数字符串

    • 从字符串末尾开始遍历,将每个数字字符转换为整数,并存储到 vector<int> b 中。

    • 如果遇到小数点 .,记录小数点的位置 k,表示小数点后有 k 位。

  • 结果

    • b 中存储的是浮点数 d 的整数形式(去掉小数点)。

    • k 记录了小数点的位置,用于后续四舍五入。


3. 高精度乘以 2^n

  • 循环乘以 2

    • 进行 n 次乘以 2 的操作,每次操作都模拟高精度乘法。

    • 每次乘以 2 时,遍历 b 中的每一位,计算当前位乘以 2 并加上进位。

    • 如果当前位的结果大于等于 10,则计算进位,并将当前位的结果取余。

    • 如果最后还有进位,将其添加到 b 的末尾。

  • 结果

    • b 中存储的是浮点数 d 乘以 2^n的结果,仍然是一个高精度整数。


4. 四舍五入

  • 判断是否需要四舍五入

    • 根据小数点的位置 k,检查小数点后的第一位(即 b[k-1])是否大于等于 5。

    • 如果大于等于 5,则需要进行四舍五入。

  • 四舍五入操作

    • 从小数点位置开始,向高位逐位加 1,直到没有进位为止。

    • 如果最高位仍有进位,将其添加到 b 的末尾。

  • 结果

    • b 中存储的是四舍五入后的最终结果。


5. 输出结果

  • 从最高位开始输出

    • 从 b 的最高位开始,输出每一位数字。

    • 忽略小数部分(即小数点后的位数)。

  • 结果

    • 输出的是浮点数 d 乘以 2^n 并四舍五入后的整数结果。


6. 代码的核心思想

  • 高精度计算

    • 由于浮点数和 2^n 可能非常大,普通数据类型无法存储,因此使用字符串和 vector<int> 来模拟高精度计算。

  • 逐位处理

    • 通过逐位遍历和进位处理,实现了高精度乘法和四舍五入。

  • 四舍五入

    • 根据小数点后的第一位决定是否需要进位,模拟了四舍五入的过程。

五、 0宝石组合 - 蓝桥云课

(这道题我只会暴力,而且没拿到该拿的分,别提了,都是泪)

牛逼的题解:

#include <bits/stdc++.h>  // 包含所有标准库头文件#define N 500010  // 定义常量 N,表示数组的最大大小int gem[N], num[N];  // 定义两个数组:gem 用于存储输入的宝石编号,num 用于统计每种宝石的数量int main() {int n;scanf("%d", &n);  // 输入整数 n,表示宝石的数量int max = -0x3f3f3f3f;  // 初始化 max 为一个很小的值,用于记录宝石编号的最大值for (int i = 0; i < n; i++) {scanf("%d", &gem[i]);  // 输入每个宝石的编号num[gem[i]]++;  // 统计每种宝石的数量if (gem[i] > max) max = gem[i];  // 更新宝石编号的最大值}// 从最大值开始,尝试找到满足条件的三个宝石for (int i = max; i >= 1; i--) {  // i 是可能的公因数int tmp[3], pos = 0;  // tmp 用于存储符合条件的宝石编号,pos 用于记录 tmp 中的位置int cnt = 0;  // cnt 用于统计符合条件的宝石数量// 遍历所有 i 的倍数,检查是否存在对应的宝石for (int j = i; j <= max; j += i) {  // j 是 i 的倍数if (num[j]) {  // 如果宝石 j 存在cnt += num[j];  // 统计宝石 j 的数量for (int k = 0; k < num[j] && pos < 3; k++) {  // 将宝石 j 加入 tmptmp[pos++] = j;}}if (cnt == 3) break;  // 如果找到三个宝石,跳出循环}// 如果找到三个宝石,输出结果并结束程序if (cnt == 3) {for (int j = 0; j < 3; j++) {printf("%d ", tmp[j]);  // 输出三个宝石的编号}break;  // 结束程序}}return 0;  // 程序结束
}

代码思路: 

六、0数字接龙 - 蓝桥云课 

题解代码:

#include <bits/stdc++.h>  // 包含所有标准库头文件
using namespace std;const int N = 11; // 定义棋盘的最大大小为11×11
int n, k; // n为棋盘大小,k为数字循环的范围
int g[N][N]; // 存储棋盘上的数字
int dx[8] = {-1, -1, 0, 1, 1, 1, 0, -1}; // 定义8个方向的x坐标偏移
int dy[8] = {0, 1, 1, 1, 0, -1, -1, -1}; // 定义8个方向的y坐标偏移
string path; // 存储路径的方向编号
bool st[N][N]; // 标记棋盘上的格子是否被访问过
bool edge[N][N][N][N]; // 检查路径是否交叉// 深度优先搜索函数,用于寻找路径
bool dfs(int a, int b) {// 如果到达右下角格子,检查路径长度是否为n*n-1(因为起点不计入路径)if (a == n - 1 && b == n - 1)return path.size() == n * n - 1;st[a][b] = true; // 标记当前格子已访问for (int i = 0; i < 8; i++) { // 遍历8个方向int x = a + dx[i], y = b + dy[i]; // 计算目标格子的坐标// 检查目标格子是否越界、是否访问过、数字是否满足循环序列要求if (x < 0 || x >= n || y < 0 || y >= n) continue;if (st[x][y]) continue;if (g[x][y] != (g[a][b] + 1) % k) continue;// 检查路径是否交叉(对于斜向移动,检查是否有反向的路径)if (i % 2 && (edge[a][y][x][b] || edge[x][b][a][y])) continue;edge[a][b][x][y] = true; // 标记路径path += i + '0'; // 将方向编号加入路径if (dfs(x, y)) return true; // 递归搜索下一个格子path.pop_back(); // 回溯,移除路径中的最后一个方向edge[a][b][x][y] = false; // 回溯,取消路径标记}st[a][b] = false; // 回溯,取消当前格子的访问标记return false; // 如果所有方向都无法到达终点,返回false
}int main() {cin >> n >> k; // 输入棋盘大小和数字循环范围for (int i = 0; i < n; i++) // 读取棋盘上的数字for (int j = 0; j < n; j++)cin >> g[i][j];// 从起点(0,0)开始搜索路径if (!dfs(0, 0))cout << -1 << endl; // 如果没有找到路径,输出-1elsecout << path << endl; // 输出路径的方向编号序列return 0;
}

罗勇军老师的分析:(有道理)

 

七、0拔河 - 蓝桥云课

算法代码(20%暴力枚举) 

//20%:暴力枚举
#include<bits/stdc++.h>  // 包含所有标准库头文件
using namespace std;     // 使用标准命名空间const int N = 1e3 + 100;  // 定义常量 N,表示数组的最大大小
typedef long long ll;     // 定义 long long 类型的别名 ll
ll a[100];                // 定义数组 a,用于存储输入的数字// 计算子数组和的函数
ll sum(int l, int r) {ll s = 0;             // 初始化子数组和为 0for (int i = l; i <= r; i++)  // 遍历子数组的每个元素s += a[i];        // 累加子数组的元素return s;             // 返回子数组的和
}int main() {int n;                // 定义整数 n,表示数组的大小cin >> n;             // 输入数组的大小 nfor (int i = 1; i <= n; i++)  // 遍历数组的每个位置cin >> a[i];       // 输入数组的每个元素ll ans = 1e12;         // 初始化答案为一个大值(1e12),用于存储最小绝对差// 暴力枚举所有可能的子数组对for (int l1 = 1; l1 <= n; l1++) {        // 枚举第一个子数组的起始位置 l1for (int r1 = l1; r1 <= n; r1++) {    // 枚举第一个子数组的结束位置 r1for (int l2 = r1 + 1; l2 <= n; l2++) {  // 枚举第二个子数组的起始位置 l2for (int r2 = l2; r2 <= n; r2++) {  // 枚举第二个子数组的结束位置 r2// 计算两个子数组和的绝对差,并更新最小值ans = min(ans, abs(sum(l2, r2) - sum(l1, r1)));}}}}cout << ans;           // 输出最小绝对差return 0;              // 程序结束
}

 算法代码(40%暴力枚举+前缀和优化) 

#include<bits/stdc++.h>  // 包含所有标准库头文件
using namespace std;     // 使用标准命名空间const int N = 1e3 + 100;  // 定义常量 N,表示数组的最大大小
typedef long long ll;     // 定义 long long 类型的别名 ll
ll a[N], prefix[N];       // 定义数组 a 和前缀和数组 prefix// 计算子数组和的函数
ll sum(int l, int r) {return prefix[r] - prefix[l - 1];  // 返回子数组 [l, r] 的和
}int main() {int n;                // 定义整数 n,表示数组的大小cin >> n;             // 输入数组的大小 n// 读取数组并计算前缀和for (int i = 1; i <= n; i++) {cin >> a[i];                // 输入数组的每个元素prefix[i] = prefix[i - 1] + a[i];  // 计算前缀和}ll ans = 1e12;         // 初始化答案为一个大值(1e12),用于存储最小绝对差// 枚举所有子数组对for (int l1 = 1; l1 <= n; l1++) {        // 枚举第一个子数组的起始位置 l1for (int r1 = l1; r1 <= n; r1++) {    // 枚举第一个子数组的结束位置 r1ll sum1 = sum(l1, r1);             // 计算第一个子数组的和for (int l2 = r1 + 1; l2 <= n; l2++) {  // 枚举第二个子数组的起始位置 l2for (int r2 = l2; r2 <= n; r2++) {  // 枚举第二个子数组的结束位置 r2ll sum2 = sum(l2, r2);           // 计算第二个子数组的和ans = min(ans, abs(sum2 - sum1));  // 更新最小绝对差}}}}cout << ans;           // 输出最小绝对差return 0;              // 程序结束
}

逆天题解:(真的想不出来,我是个只会暴力的fw)

#include<bits/stdc++.h>  // 包含所有标准库头文件
using namespace std;     // 使用标准命名空间const int N = 1e3 + 10;  // 定义常量 N,表示数组的最大大小
long long a[N];          // 定义数组 a,用于存储前缀和
int n;                   // 定义整数 n,表示数组的大小
multiset<long long> s;   // 定义 multiset,用于存储所有可能的子数组和// 自定义函数,返回两个数中的较小值
long long minn(long long a, long long b) {if (a < b) return a;else return b;
}int main() {ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);  // 取消同步流,加速输入输出cin >> n;  // 输入数组的大小 n// 读取数组并构造前缀和for (int i = 1; i <= n; i++) {cin >> a[i];a[i] += a[i - 1];  // 计算前缀和}// 枚举所有可能的子数组和,并将其插入 multisetfor (int i = 1; i <= n; i++) {for (int j = i; j <= n; j++) {s.insert(a[j] - a[i - 1]);  // 计算子数组 [i, j] 的和,并插入 multiset}}long long res = 1e9;  // 初始化结果为一个大值(1e9),用于存储最小绝对差// 遍历所有可能的第一个区间的右端点 ifor (int i = 1; i < n; i++) {// 删除以 i 作为右端点的所有子数组和for (int j = i; j <= n; j++) {auto k = a[j] - a[i - 1];  // 计算子数组 [i, j] 的和s.erase(s.find(k));        // 从 multiset 中删除该和}// 遍历所有可能的第一个区间的左端点 jfor (int j = 1; j <= i; j++) {auto k = a[i] - a[j - 1];  // 计算第一个子数组 [j, i] 的和// 在 multiset 中查找最接近 k 的值auto p = s.lower_bound(k);  // 找到第一个 >= k 的值if (p != s.end()) {res = minn(res, abs(*p - k));  // 更新最小绝对差}if (p != s.begin()) {p--;  // 找到第一个 < k 的值res = minn(res, abs(*p - k));  // 更新最小绝对差}}}cout << res << endl;  // 输出最小绝对差return 0;             // 程序结束
}

相关文章:

蓝桥杯刷题——第十五届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组

一、0握手问题 - 蓝桥云课 算法代码&#xff1a; #include <iostream> using namespace std; int main() {int sum0;for(int i49;i>7;i--)sumi;cout<<sum<<endl;return 0; } 直接暴力&#xff0c;题意很清晰&#xff0c;累加即可。 二、0小球反弹 - 蓝…...

MobileNet家族:从v1到v4的架构演进与发展历程

MobileNet 是一个专为移动设备和嵌入式系统设计的轻量化卷积神经网络&#xff08;CNN&#xff09;家族&#xff0c;旨在在资源受限的环境中实现高效的图像分类、对象检测和语义分割等任务。自 2017 年首次推出以来&#xff0c;MobileNet 经历了从 v1 到 v4 的多次迭代&#xff…...

PyTorch PINN实战:用深度学习求解微分方程

在人工智能与计算数学的交汇点&#xff0c;物理信息神经网络&#xff08;Physics-Informed Neural Networks&#xff0c;PINN&#xff09;正引领着一场求解微分方程的革命。传统上&#xff0c;微分方程是描述自然现象和工程问题中各种关系的重要工具&#xff0c;但其求解往往依…...

LRU(最近最少使用)算法实现

核心思想与基本思路 LRU&#xff08;Least Recently Used&#xff09;算法是一种缓存淘汰策略&#xff0c;其核心思想是淘汰最近最少使用的数据。 最近使用原则&#xff1a;最近被访问的数据在未来被访问的概率更高&#xff0c;因此应保留在缓存中。淘汰机制&#xff1a;当缓…...

【大模型实战】利用ms-swift微调框架对QwQ-32B推理模型进行微调

1. 背景介绍 之前我们在《大模型训练/微调的一些经验分享》、《利用DeepSeek-R1数据微调蒸馏ChatGLM32B让大模型具备思考能力》中做了相关模型微调的介绍。目前在基座大模型能力还没有达到足够牛的情况下&#xff0c;大模型微调在商业化、垂直领域应用依然是不可或缺&#xff0…...

蓝桥杯省赛真题C++B组-小球反弹

一、题目 有一长方形&#xff0c;长为 343720 单位长度&#xff0c;宽为 233333 单位长度。在其内部左上角顶点有一小球(无视其体积)&#xff0c;其初速度如图所示且保持运动速率不变&#xff0c;分解到长宽两个方向上的速率之比为 dx:dy 15:17。小球碰到长方形的边框时会发生…...

Web3到底解决了什么问题?

文章目录 Web3到底解决了什么问题?1. 数据所有权与控制权的转移2. 打破中心化平台的垄断3. 信任与透明度的重构4. 价值分配机制的革新5. 互操作性与开放生态6.Web3 的局限性&#xff08;附加说明&#xff09; Web3到底解决了什么问题? 1. 数据所有权与控制权的转移 问题&am…...

基于CSV构建轻量级数据库:SQL与Excel操作的双模实践

基于CSV构建轻量级数据库&#xff1a;SQL与Excel操作的双模实践 引言&#xff1a;当CSV遇到SQL和Excel CSV&#xff08;逗号分隔值&#xff09;作为最通用的数据存储格式之一&#xff0c;凭借其纯文本可读性和跨平台兼容性&#xff0c;被广泛应用于数据交换和简单存储场景。但…...

【深度学习】多源物料融合算法(一):量纲对齐常见方法

目录 一、引言 二、量纲对齐常见方法 2.1 Z-score标准化Sigmoid归一化 2.2 Min-Max 归一化 2.3 Rank Transformation 2.4 Log Transformation 2.5 Robust Scaling 3、总结 一、引言 类似抖音、快手、小红书等产品的信息流推荐业务&#xff0c;主要通过信息流广告、信…...

STM32-SPI通信外设

目录 一&#xff1a;SPI外设简介 SPI框图​编辑 SPI逻辑 ​编辑 主模式全双工连续传输 ​编辑 非连续传输 二&#xff1a;硬件SPI读写W25Q64 1.接线&#xff1a; 2. 代码 SPI外设的初始化 生成时序 一&#xff1a;SPI外设简介 STM32内部集成了硬件SPI收发电路&#…...

告别XML模板的繁琐!Word文档导出,easy!

word模板导出 最近项目中有个功能&#xff0c;导出月报&#xff0c;发现同事使用了docx格式模板,感觉比之前转成xml的简单多了&#xff0c;这边记录下使用方法。 xml方式导出word,模板太复杂了 资料 poi-tl 一个基于Apache POI的Word模板引擎&#xff0c;也是一个免费开源的Jav…...

LeetCode 3280 将日期转换为二进制表示

【算法实战】日期转二进制&#xff1a;两种解法的思路与优化&#xff08;附代码解析&#xff09; 一、问题描述 给定一个yyyy-mm-dd格式的日期字符串&#xff0c;要求将年、月、日分别转为无前导零的二进制&#xff0c;并保持year-month-day格式。 示例&#xff1a;输入2025-…...

基于SpringBoot的“考研互助平台”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“考研互助平台”的设计与实现&#xff08;源码数据库文档PPT) 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringBoot 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 系统整体功能图 局部E-R图 系统首页界面 系统注册…...

在线Doc/Docx转换为PDF格式 超快速转换的一款办公软件 文档快速转换 在线转换免费转换办公软件

小白工具https://www.xiaobaitool.net/files/word-pdf/提供了一项非常实用的在线服务——将Doc或Docx格式的文档快速转换为PDF格式。这项服务不仅操作简单&#xff0c;而且转换效率高&#xff0c;非常适合需要频繁处理文档转换的用户。 服务特点&#xff1a; 批量转换&#x…...

3.14-进程间通信

进程间通信 IPC 进程间通信的原理&#xff0c;借助进程之间使用同一个内核&#xff0c;借助内核&#xff0c;传递数据。 进程间通信的方法 管道&#xff1a;最简单。信号&#xff1a;开销小。mmap映射&#xff1a;速度最快&#xff0c;非血缘关系之间。socket&#xff08;本…...

大模型AI多智能体系统(Multi-Agent Systems, MAS)技术介绍

一、多智能体系统的定义与核心概念 多智能体系统(MAS)是由多个具备自主决策能力的智能体(Agent)组成的分布式系统。每个智能体能够感知环境、执行动作,并通过协作或竞争实现个体或集体目标。其核心特征包括: 自主性:智能体无需外部指令即可独立决策(如MetaGPT中的角色…...

web3区块链

Web3 是指下一代互联网&#xff0c;也被称为“去中心化互联网”或“区块链互联网”。它是基于区块链技术构建的&#xff0c;旨在创建一个更加开放、透明和用户主导的网络生态系统。以下是关于 Web3 的一些关键点&#xff1a; ### 1. **核心概念** - **去中心化**&#xff1…...

Alembic 实战指南:快速入门到FastAPI 集成

一、快速开始 1.1 简介 Alembic 是一个基于 SQLAlchemy 的数据库迁移工具&#xff0c;主要用于管理数据库模式&#xff08;Schema&#xff09;的变更&#xff0c;例如新增表、修改字段、删除索引等&#xff0c;确保数据库结构与应用程序的 ORM 模型保持一致。 Alembic 通过版…...

【视频】V4L2、ffmpeg、OpenCV中对YUV的定义

1、常见的YUV格式 1.1 YUV420 每像素16位 IMC1:YYYYYYYY VV-- UU– IMC3:YYYYYYYY UU-- VV– 每像素12位 I420: YYYYYYYY UU VV =>YUV420P YV12: YYYYYYYY VV UU =>YUV420P NV12: YYYYYYYY UV UV =>YUV420SP(最受欢迎格式) NV21: YYYYYYYY VU VU =>YUV420SP…...

ubuntu20.04装nv驱动的一些坑

**1.一定要去bios里面关闭secure boot&#xff0c;否则驱动程序需要签名&#xff0c;安装了的驱动无法被识别加载 2.假如没有关闭secure boot然后装了驱动&#xff0c;然后再去关闭secure boot&#xff0c;可能会导致进入不了ubuntu的情况 此时&#xff0c;先恢复secure boot&…...

【SpringMVC】常用注解:@SessionAttributes

1.作用 用于多次执行控制器方法间的参数共享 2.属性 value&#xff1a;用于指定存入的属性名称 type&#xff1a;用于指定存入的数据类型 3.示例 先写JSP代码 <a href"demo1/putMethod">存入 SessionAttribute</a><br><a href"demo…...

阿里云企业邮箱出现故障怎么处理?

阿里云企业邮箱出现故障怎么处理&#xff1f; 以下是处理阿里云企业邮箱故障的详细分步指南&#xff0c;帮助您快速定位问题并恢复邮箱正常使用&#xff1a; 一、初步排查&#xff1a;确认故障范围与现象 确定影响范围 全体用户无法使用 → 可能为阿里云服务端故障或网络中断。…...

C# Enumerable类 之 集合操作

总目录 前言 在 C# 中&#xff0c;System.Linq.Enumerable 类是 LINQ&#xff08;Language Integrated Query&#xff09;的核心组成部分&#xff0c;它提供了一系列静态方法&#xff0c;用于操作实现了 IEnumerable 接口的集合。通过这些方法&#xff0c;我们可以轻松地对集合…...

LVGL移植到6818开发板

一、移植步骤 1.lv_config.h 配置文件启动 framebuffer 2、lv_config.h 配置文件关闭SDL 2.修改main.c 去掉SDL输入设备 3.修改Makefile 文件启动交叉编译 去掉警告参数 去掉SDL库 4.交叉编译代码 make clean #清空 ⭐ 必须要清空一次再编译&#xff01; 因为修改了 lv_con…...

深入理解 `ParameterizedTypeReference`:解决 Java 泛型擦除问题

在 Java 中&#xff0c;由于类型擦除的存在&#xff0c;我们在使用 RestTemplate 获取带有泛型的 HTTP 响应时&#xff0c;可能会遇到 泛型信息丢失 的问题。而 ParameterizedTypeReference<T> 正是用来解决这个问题的。 本文将深入解析 ParameterizedTypeReference 的作…...

如何使用Python的matplotlib.pyplot绘制热图和损失图

在Python的数据可视化中&#xff0c;matplotlib是一个非常重要的库。而matplotlib.pyplot作为其中一个模块&#xff0c;提供了许多绘制各种图形的函数。今天&#xff0c;我们就来聊聊如何利用这个库来绘制热图和损失图&#xff0c;通过这两个图形展示数据&#xff0c;让我们一起…...

【数据分享】2000—2024年我国省市县三级逐月归一化植被指数(NDVI)数据(Shp/Excel格式)

之前我们分享过2000—2024年逐月归一化植被指数&#xff08;NDVI&#xff09;栅格数据&#xff08;可查看之前的文章获悉详情&#xff09;&#xff0c;该数据来源于NASA定期发布的MOD13A3数据集&#xff01;很多小伙伴拿到数据后反馈栅格数据不太方便使用&#xff0c;问我们能不…...

数据结构---堆栈和列

一、堆栈 1.栈堆&#xff1a;具有一定操作约束的线性表&#xff1b;&#xff08;只在一端做插入删除&#xff09; 2.栈的顺序存储结构&#xff1a; 由一个一维数组和一个记录栈顶元素位置的变量组成。定义方式如下&#xff1a; 3.入栈操作&#xff1a; 注意&#xff1a;&…...

威胁驱动的网络安全方法论

摘要 目前的网络安全风险管理实践很大程度上是由合规性要求驱动的&#xff0c;这使得公司/组织不得不在安全控制和漏洞上投入人力/物力。&#xff08;风险管理涉及多个方面&#xff0c;包括资产、威胁、漏洞和控制&#xff0c;并根据事故发生的可能性及造成的影响进行评估。威胁…...

搭建Spring Boot Admin监控系统

什么是Spring Boot Admin Spring Boot Admin 是一个用于管理和监控 Spring Boot 应用程序的开源工具。它提供了一个用户友好的 Web 界面&#xff0c;用于集中管理和监控多个 Spring Boot 应用程序的运行状态、健康状况、日志、配置等信息。 Spring Boot Admin 的核心功能 应用…...

P2730 魔板 (写了巨久..有一些数字,字符,字符串之间的转换规则)

ac代码&#xff1a; #include<iostream> #include<map> #include<queue> using namespace std; map<string,int>mp1,mp2; map<string,string>mp3; queue<string>q; string str,res"12345678"; void pri(string str){if(resstr)…...

MinIo前后端实现

这几天想玩玩Minio&#xff0c;整体来说简单使用起来不复杂&#xff08;当然也有可能是我配置的太少了&#xff09; Minio下载 我是通过Dokcer在虚拟机上下载的&#xff08;Docker真好用啊&#xff09; 拉取Minio镜像 docker pull minio/minio启动Minio容器 docker run -d …...

mesh开发解析

开源的Mesh网络协议栈及相关项目&#xff1a; 1.B.A.T.M.A.N.(Better Approach to Mobile Ad-hoc Networking)• 简介&#xff1a;B.A.T.M.A.N.是一种用于多跳自组织网络的路由协议&#xff0c;适用于无线Mesh网络。它通过优化数据传输路径&#xff0c;确保网络的高可靠性和动…...

使用netlify部署github的vue/react项目或本地的dist,国内也可以正常访问

提供简洁的部署流程和丰富功能&#xff0c;如自定义域名、自动构建和服务器端功能。通过连接到 Git 仓库实现持续部署&#xff0c;每次推送代码都会自动构建和发布&#xff0c;支持无服务器函数&#xff0c;允许在前端项目中实现后端逻辑&#xff0c;提供直观的用户界面来管理和…...

LinuX---Shell正则表达式

正则表达式 正则表达式使用单个字符串来描述、匹配一系列符合某个语法规则的字符串。在很多文本编辑器里&#xff0c;正则表达式通常被用来检索、替换那些符合某个模式的文本。在Linux中&#xff0c;grep&#xff0c;sed&#xff0c;awk等命令都支持通过正则表达式进行模式匹配…...

[Hello-CTF]RCE-Labs超详细WP-Level10(无字母命令执行_二进制整数替换)

温馨提示 这关涉及的知识点较多, 写的很长, 中间留了很多错误引导(本人在实验时遇到的问题, 或许你们也会遇到), 在后文才逐步解释源码分析 跟前几关一样, 更改了 WAF 的过滤字段这个关卡, 只有0, 1, (单引号), $, <, \ , ( , )可以用解题分析(实验这些命令, 可以先在自己本…...

基于PySide6与CATIA Automation的批量截图处理系统开发实践

引言 本文完整实现了基于PySide6 GUI框架与CATIA Automation技术的批量截图处理系统。系统支持对CATIA文件&#xff08;.CATPart/.CATProduct&#xff09;的自动化截图、图像优化及批量导出&#xff0c;通过模块化架构设计实现了超过200%的效率提升。本文将从技术架构、核心算…...

AI开发软件:开启智能时代的钥匙

在当今数字化时代&#xff0c;人工智能&#xff08;AI&#xff09;已不再是一个遥远的概念&#xff0c;而是深入到我们生活和工作的方方面面&#xff0c;成为推动各行业变革与发展的核心力量。AI 开发软件作为实现人工智能技术落地的关键工具&#xff0c;正引领着一场前所未有的…...

73.HarmonyOS NEXT PicturePreviewImage组件深度剖析:高级功能扩展与性能优化策略(三)

温馨提示&#xff1a;本篇博客的详细代码已发布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下载运行哦&#xff01; HarmonyOS NEXT PicturePreviewImage组件深度剖析&#xff1a;高级功能扩展与性能优化策略(三) 文章目录 HarmonyOS NEXT PicturePreviewImage组件…...

【模拟算法】

目录 替换所有的问号 提莫攻击 Z 字形变换 外观数列 数青蛙&#xff08;较难&#xff09; 模拟算法&#xff1a;比葫芦画瓢。思路较简单&#xff0c;考察代码能力。 1. 模拟算法流程&#xff0c;一定要在演草纸上过一遍流程 2. 把流程转化为代码 替换所有的问号 1576. 替…...

Spring Cloud 中的服务注册与发现: Eureka详解

1. 背景 1.1 问题描述 我们如果通过 RestTamplate 进行远程调用时&#xff0c;URL 是写死的&#xff0c;例如&#xff1a; String url "http://127.0.0.1:9090/product/" orderInfo.getProductId(); 当机器更换或者新增机器时&#xff0c;这个 URL 就需要相应地变…...

WireShark自动抓包

背景 异常流量检测是当前保护网络空间安全的重要检测方法。 对流量的研究&#xff0c;首先需要在系统中进行抓包&#xff0c;并对包进行分析。 这里对WireShark自动抓包进行简要介绍。 操作步骤 1、选择“捕获”>“选项”。 2、在Input下&#xff0c;选择要抓包的网络接…...

Redis 的应用场景

缓存&#xff1a; 作为缓存层&#xff0c;加速数据访问&#xff0c;减轻数据库压力&#xff0c;常用于网页、数据库查询结果的缓存。 会话存储&#xff1a; 存储用户会话信息&#xff0c;支持分布式系统中的会话共享。 消息队列&#xff1a; 利用列表和发布/订阅功能&#xf…...

React使用路由表

目录 前言 实现步骤 1. 安装依赖 2. 创建路由配置文件 高级配置 嵌套路由配置 对比两种配置方式 传统 JSX 方式 路由表方式优势 完整功能示例 带路由守卫的配置 注意事项 总结 前言 React Router 从 v6 版本开始支持类似 Vue 的集中式路由表配置方式&#xff0c;通…...

嵌入式C语言中堆栈管理与数据存储的精髓

在嵌入式开发中,理解C语言的内存管理和数据存储机制是至关重要的。本文将从堆栈管理和数据存储两个方面,深入探讨C语言在嵌入式Linux开发中的应用。 一、堆栈管理 1.1 栈的初始化与作用 栈是C语言运行的基础,主要用于存储函数参数、局部变量、函数返回值和编译器生成的临时…...

Linux系统之less命令的基本使用

Linux系统之less命令的基本使用 一、less命令介绍二、less命令的使用帮助2.1 less命令的帮助信息2.2 less命令主要选项解释 三、less命令的基本使用3.1 查看文件内容3.2 结合管道使用 四、注意事项 一、less命令介绍 在Linux和Unix类操作系统中&#xff0c;文件浏览是一项常见的…...

【免费】1949-2020年各省人均GDP数据

1949-2020年各省人均GDP数据 1、时间&#xff1a;1952-2020年 2、来源&#xff1a;国家统计局、统计年鉴 3、指标&#xff1a;各省人均GDP 4、范围&#xff1a;31省 5、指标解释&#xff1a;人均GDP&#xff08;Gross Domestic Product per capita&#xff09;是指一个国家…...

三分钟掌握视频剪辑 | 在 Rust 中优雅地集成 FFmpeg

前言 在当今的短视频时代&#xff0c;高效的视频剪辑已成为内容创作者和开发者的迫切需求。无论是裁剪视频开头结尾、提取高光时刻&#xff0c;还是制作 GIF、去除广告&#xff0c;剪辑都是必不可少的一环。 然而&#xff0c;批量处理大量视频并非易事&#xff0c;常见的挑战…...

angular中下载接口返回文件

目录 一、URL.createObjectURL() 一、URL.createObjectURL() createObjectURL属于js的原生方法&#xff0c;位于window.URL上&#xff0c;用于将Blob或者File文件转换为可以临时的URL地址进行显示 **注意**&#xff1a;Angular 的 HttpClient 默认将响应解析为 JSON 对象‌16。…...

自定义tiptap插件

本文为开发开源项目的真实开发经历&#xff0c;感兴趣的可以来给我的项目点个star&#xff0c;谢谢啦~ 具体博文介绍&#xff1a; 开源&#xff5c;Documind协同文档&#xff08;接入deepseek-r1、支持实时聊天&#xff09;Documind &#x1f680; 一个支持实时聊天和接入 - 掘…...