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

第十四届蓝桥杯大赛软件赛省赛(C/C++B组)

目录

  • 试题 A. 日期统计
    • 1.题目描述
    • 2.解题思路
    • 3.模板代码
  • 试题 B.01 串的熵
    • 1.题目描述
    • 2.解题思路
    • 3.模板代码
  • 试题 C. 冶炼金属
    • 1.题目描述
    • 2. 解题思路
    • 3.模板代码
  • 试题 D. 飞机降落
    • 1.题目描述
    • 2. 解题思路
    • 3.模板代码
  • 试题 E. 接龙数列
    • 1.题目描述
    • 2. 解题思路
    • 3.模板代码
  • 试题 F. 岛屿个数
    • 1.题目描述
    • 2. 解题思路
    • 3.模板代码
  • 试题 G. 子串简写
    • 1.题目描述
    • 2. 解题思路
    • 3.模板代码
  • 试题 H.整数删除
    • 1.题目描述
    • 2. 解题思路
    • 3.模板代码
  • 试题 I. 景区旅游
    • 1.题目描述
    • 2. 解题思路
    • 3.模板代码
  • 试题 J. 砍树
    • 1.题目描述
    • 2. 解题思路
    • 3. 模板代码


部分题暂更补代码,欢迎评论区交流


试题 A. 日期统计

1.题目描述

  小蓝现在有一个长度为 100 的数组,数组中的每个元素的值都在 0 到 9 的
范围之内。数组中的元素从左至右如下所示:

5 6 8 6 9 1 6 1 2 4 9 1 9 8 2 3 6 4 7 7 5 9 5 0 3 8 7 5 8 1 5 8 6 1 8 3 0 3 7 9 2
7 0 5 8 8 5 7 0 9 9 1 9 4 4 6 8 6 3 3 8 5 1 6 3 4 6 7 0 7 8 2 7 6 8 9 5 6 5 6 1 4 0 1
0 0 9 4 8 0 9 1 2 8 5 0 2 5 3 3

现在他想要从这个数组中寻找一些满足以下条件的子序列:

    1. 子序列的长度为 888
    1. . 这个子序列可以按照下标顺序组成一个 yyyymmddyyyymmddyyyymmdd 格式的日期,并且
      要求这个日期是 202320232023 年中的某一天的日期,例如 20230902,2023122320230902,202312232023090220231223
      yyyyyyyyyyyy 表示年份,mmmmmm 表示月份,dddddd 表示天数,当月份或者天数的长度只
      有一位时需要一个前导零补充。

  请你帮小蓝计算下按上述条件一共能找到多少个不同 的 2023 年的日期。
对于相同的日期你只需要统计一次即可。

2.解题思路

  考虑八层循环枚举一下,中间需要进行减枝加快搜索步骤,不建议写 dfs,不然就像我一样在考场写烂,注意答案需要去重,答案为235

3.模板代码

  暂更

试题 B.01 串的熵

1.题目描述

  没学过数学,暂更

2.解题思路

3.模板代码

试题 C. 冶炼金属

1.题目描述

  小蓝有一个神奇的炉子用于将普通金属 OOO 冶炼成为一种特殊金属 XXX。这个
炉子有一个称作转换率的属性 VVVVVV 是一个正整数,这意味着消耗 VVV 个普通金
OOO 恰好可以冶炼出一个特殊金属 XXX,当普通金属 OOO 的数目不足 VVV 时,无法
继续冶炼。
  现在给出了 NNN 条冶炼记录,每条记录中包含两个整数 AAABBB,这表示本次投入了 AAA 个普通金属 OOO,最终冶炼出了 BBB 个特殊金属 XXX。每条记录都是独立
的,这意味着上一次没消耗完的普通金属 OOO 不会累加到下一次的冶炼当中。
  根据这 NNN 条冶炼记录,请你推测出转换率 VVV 的最小值和最大值分别可能是多少,题目保证评测数据不存在无解的情况。

2. 解题思路

  如果看过样例的话,显然答案两个上下界都是可以直接二分出来的。因为式子的结构都是 AC=B\frac{A}{C} = BCA=BAAA 是不变的,我们先考虑二分求最小的 CCC,因为需要保证所有式子的 BBB 都不变,如果 CCC 太小,显然会有某一组的 BBB 增大,所以需要保证每一组都符合a[i]/x <= b[i]。反过来考虑求最大的 CCC, 如果 CCC 太大,显然会有某一组的 BBB 变小,需要保证每一组都符合 a[i]/x >= B

3.模板代码

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef unsigned long long uLL;
typedef pair<int, int> PII;
#define pb(s) push_back(s);
#define SZ(s) ((int)s.size());
#define ms(s,x) memset(s, x, sizeof(s))
#define all(s) s.begin(),s.end()
const int inf = 0x3f3f3f3f;
const int mod = 1000000007;
const int N = 200010;int n;
int a[N], b[N];
bool check(LL x) {for (int i = 1; i <= n; ++i) {if (a[i] / x > b[i]) return false;}return true;
}
bool check2(LL x) {for (int i = 1; i <= n; ++i) {if (a[i] / x < b[i]) return false;}return true;
}
void solve()
{cin >> n;for (int i = 1; i <= n; ++i) cin >> a[i] >> b[i];LL l = 1, r = 1e9;while (l < r) {LL mid = l + r >> 1;if (check(mid)) r = mid;else l = mid + 1;}int s = r;l = 1, r = 1e9;while (l < r) {LL mid = l + r + 1 >> 1;if (check2(mid)) l = mid;else r = mid - 1;}cout << s << " " << r << '\n';
}
int main()
{ios_base :: sync_with_stdio(false);cin.tie(0); cout.tie(0);int t = 1;while (t--){solve();}return 0;
}

试题 D. 飞机降落

1.题目描述

   NNN 架飞机准备降落到某个只有一条跑道的机场。其中第 iii 架飞机在 TiTiTi 时刻到达机场上空,到达时它的剩余油料还可以继续盘旋 DiDiDi 个单位时间,即它最早
可以于 TiTiTi 时刻开始降落,最晚可以于 Ti+DiTi + DiTi+Di 时刻开始降落。降落过程需要 LiLiLi
个单位时间。
  一架飞机降落完毕时,另一架飞机可以立即在同一时刻开始降落,但是不
能在前一架飞机完成降落前开始降落。
  请你判断 NNN 架飞机是否可以全部安全降落。

2. 解题思路

   看 NNN 最大为10,写了个全排列,T组数据复杂度还是炸了,暂更吧 。

3.模板代码

试题 E. 接龙数列

1.题目描述

   对于一个长度为 KKK 的整数数列:A1,A2,...,AKA_1, A_2, . . . , A_KA1,A2,...,AK,我们称之为接龙数列当且仅当 AiA_iAi 的首位数字恰好等于 Ai−1A_{i-1}Ai1 的末位数字 (2≤i≤K)(2 ≤ i ≤ K)(2iK)
   例如 12,23,35,56,61,1112, 23, 35, 56, 61, 1112,23,35,56,61,11 是接龙数列;12,23,34,5612, 23, 34, 5612,23,34,56 不是接龙数列,因为 565656 的首位数字不等于 343434 的末位数字。所有长度为 111 的整数数列都是接龙数列。
   现在给定一个长度为 NNN 的数列 A1,A2,...,ANA_1, A_2, . . . , A_NA1,A2,...,AN,请你计算最少从中删除多少个数,可以使剩下的序列是接龙序列?

2. 解题思路

   考场读完题的时候感觉有点奇怪,发现思路还是比较简单的。首先一个数我们只需要关注其首位数字和末位数字,定以 f[i]f[i]f[i] 为以数字 iii 结尾的最长接龙序列的长度,iii 的范围是 [0,9][0,9][0,9]。对于每个数字设其首位数字为 aaa ,末尾数字为 bbb,则有转移方程:
f[b]=max(f[b],f[a]+1)f[b]=max(f[b],f[a]+1)f[b]=max(f[b],f[a]+1)
   最后在 f[0]、f[1]...f[9]f[0]、f[1]...f[9]f[0]f[1]...f[9] 取一个最大值 ansansans,答案则为 n−ansn-ansnans

3.模板代码

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef unsigned long long uLL;
typedef pair<int, int> PII;
#define pb(s) push_back(s);
#define SZ(s) ((int)s.size());
#define ms(s,x) memset(s, x, sizeof(s))
#define all(s) s.begin(),s.end()
const int inf = 0x3f3f3f3f;
const int mod = 1000000007;
const int N = 200010;int n;
int a[N], b[N];
int f[10];
void solve()
{cin >> n;for (int i = 1; i <= n; ++i) {int x;cin >> x;b[i] = x % 10;string s = to_string(x);a[i] = s[0] - '0';}for (int i = 1; i <= n; ++i) {f[b[i]] = max(f[b[i]], f[a[i]] + 1);}int ans = 0;for (int i = 0; i <= 9; ++i) ans = max(ans, f[i]);cout << n - ans << '\n';
}
int main()
{ios_base :: sync_with_stdio(false);cin.tie(0); cout.tie(0);int t = 1;while (t--){solve();}return 0;
}

试题 F. 岛屿个数

1.题目描述

暂更,感觉不好写

2. 解题思路

3.模板代码

试题 G. 子串简写

1.题目描述

   程序猿圈子里正在流行一种很新的简写方法:对于一个字符串,只保留首尾字符,将首尾字符之间的所有字符用这部分的长度代替。例如 internation−alizationinternation-alizationinternationalization 简写成 i18ni18ni18nKubernetesKubernetesKubernetes (注意连字符不是字符串的一部分)简写成 K8s,LanqiaoK8s, LanqiaoK8s,Lanqiao 简写成 L5oL5oL5o等。
   在本题中,我们规定长度大于等于 KKK 的字符串都可以采用这种简写方法(长度小于 KKK 的字符串不配使用这种简写)。
   给定一个字符串 SSS 和两个字符 c1c1c1c2c2c2,请你计算 SSS 有多少个以 c1c1c1 开头 c2c2c2 结尾的子串可以采用这种简写?

2. 解题思路

   这道题放在 G 题感觉更奇怪了,一道前缀和模板题。假设下标为 iii 的字符为 c1c1c1,那我们只需要统计在区间 [i+k−1,n][i+k-1,n][i+k1,n]有多少个 c2c2c2 即可,前缀和预处理一下 c2c2c2 字符,直接累加答案即可,注意答案会爆int,复杂度 O(n)O(n)O(n)

3.模板代码

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef unsigned long long uLL;
typedef pair<int, int> PII;
#define pb(s) push_back(s);
#define SZ(s) ((int)s.size());
#define ms(s,x) memset(s, x, sizeof(s))
#define all(s) s.begin(),s.end()
const int inf = 0x3f3f3f3f;
const int mod = 1000000007;
const int N = 500010;int k;
string s;
char c1, c2;
int a[N];
void solve()
{cin >> k >> s >> c1 >> c2;int n = s.size();s = '?' + s;for (int i = 1; i <= n; ++i) {a[i] = (s[i] == c2);a[i] += a[i - 1];}LL ans = 0;for (int i = 1; i + k - 2 < n; ++i) {if (s[i] == c1) ans += a[n] - a[i + k - 2];}cout << ans << '\n';
}
int main()
{ios_base :: sync_with_stdio(false);cin.tie(0); cout.tie(0);int t = 1;while (t--){solve();}return 0;
}

试题 H.整数删除

1.题目描述

   给定一个长度为 NNN 的整数数列:A1,A2,...,ANA_1, A_2, . . . , A_NA1,A2,...,AN。你要重复以下操作 KKK 次:
   每次选择数列中最小的整数(如果最小值不止一个,选择最靠前的),将其删除。并把与它相邻的整数加上被删除的数值。
   输出 KKK 次操作后的序列。

2. 解题思路

   感觉是比较典的题目,但是这题好像卡常,我的代码在非官方数据TLE了大半。用优先队列维护,存入值和下标,再用一个数组cnt累计每个下标增加的和,当弹出最小的值下标为 i 时,如果此时cnt[i]不等于0,说明它实际的值需要加上cnt[i],我们将其增加后再放回优先对列,注意需要清空cnt[i]。如果此时cnt[i]等于0,那我们就成功弹出当前最小元素,这时需要将其前一个元素和后一个元素值增加,我们需要模拟链表去记录每个元素的前后元素是谁,pre[i]表示下标为i的上一个元素是谁,ne[i]表示下标为 i 的下一个元素是谁,直到堆的元素个数只剩n-k时结束循环。


评论区来个小伙伴帮忙优化下或者来个其他做法

3.模板代码

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef unsigned long long uLL;
typedef pair<int, int> PII;
#define pb(s) push_back(s);
#define SZ(s) ((int)s.size());
#define ms(s,x) memset(s, x, sizeof(s))
#define all(s) s.begin(),s.end()
const int inf = 0x3f3f3f3f;
const int mod = 1000000007;
const int N = 500010;int n, k;
int pre[N], ne[N];
LL cnt[N];
void solve()
{cin >> n >> k;priority_queue<pair<LL, int>, vector<pair<LL, int>>, greater<pair<LL, int>> >q;for (int i = 1; i <= n; ++i) {LL v;cin >> v;q.push({v, i});pre[i] = i - 1;ne[i] = i + 1;}int g = n - k;while (q.size() > g) {auto p = q.top(); q.pop();LL v = p.first, ix = p.second;if (cnt[ix]) {q.push({v + cnt[ix], ix});cnt[ix] = 0;} else {int l = pre[ix], r = ne[ix];cnt[l] += v;cnt[r] += v;ne[l] = r;pre[r] = l;}}std::vector<LL> a(n + 1);for (int i = 0; i < g; ++i) {auto p = q.top(); q.pop();a[p.second] = p.first + cnt[p.second];}for (int i = 1; i <= n; ++i) {if (a[i]) cout << a[i] << " ";}
}
int main()
{ios_base :: sync_with_stdio(false);cin.tie(0); cout.tie(0);int t = 1;while (t--){solve();}return 0;
}

试题 I. 景区旅游

1.题目描述

   某景区一共有 NNN 个景点,编号 111NNN。景点之间共有 N−1N − 1N1 条双向的摆渡车线路相连,形成一棵树状结构。在景点之间往返只能通过这些摆渡车进行,需要花费一定的时间。
   小明是这个景区的资深导游,他每天都要按固定顺序带客人游览其中 KKK 个景点:A1,A2,...,AKA_1, A_2, . . . , A_KA1,A2,...,AK。今天由于时间原因,小明决定跳过其中一个景点,只带游客按顺序游览其中 K−1K − 1K1 个景点。具体来说,如果小明选择跳过 AiA_iAi,那么他会按顺序带游客游览 A1,A2,...,Ai−1,Ai+1,...,AK,(1≤i≤K)A_1, A_2, . . . , A_{i−1}, A_{i+1}, . . . , A_K, (1 ≤ i ≤ K)A1,A2,...,Ai1,Ai+1,...,AK,(1iK)
   请你对任意一个 AiAiAi,计算如果跳过这个景点,小明需要花费多少时间在景点之间的摆渡车上?

2. 解题思路

   LCALCALCA 模板题(问题是比赛写不出板子呢),首先肯定需要考虑求树上任意两点的距离。设点 u,vu,vu,v 的最近公共祖先为 zzz,定义f[i]f[i]f[i] 为点 iii 到根节点的距离,那么则有公式:
dist(u,v)=f[u]+f[v]−2∗f[z]dist(u,v)=f[u]+f[v]-2*f[z]dist(u,v)=f[u]+f[v]2f[z]
   先求出不跳过任何的点时需要走的距离为ans以及任意相邻两个跳点的距离。假设我们跳过四个点分别为 a,b,c,da,b,c,da,b,c,d。当跳过的点为 aaa 时,我们只需要用ans减去aaabbb的距离,当跳过的点为 ddd 时,我们只需要用ans减去 cccddd 的距离,这是首尾两个点的情况。
   那么当跳过的点为中间点呢?比如我们跳过的是 bbb,那么则需要用ans减去aaabbb以及bbbccc的距离,并且还需要加上aaaccc的距离,其余的中间点处理同理。

3.模板代码

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef unsigned long long uLL;
typedef pair<int, int> PII;
#define pb(s) push_back(s);
#define SZ(s) ((int)s.size());
#define ms(s,x) memset(s, x, sizeof(s))
#define all(s) s.begin(),s.end()
const int inf = 0x3f3f3f3f;
const int mod = 1000000007;
const int N = 200010;int n, m;
std::vector<PII> e[N];
int depth[N], fa[N][32];
LL f[N];
int root;
void bfs(int root)
{memset(depth, 0x3f, sizeof depth);depth[0] = 0, depth[root] = 1;queue<int> q;q.push(root);while (!q.empty()) {auto t = q.front();q.pop();for (auto [j, c] : e[t]) {if (depth[j] > depth[t] + 1) {depth[j] = depth[t] + 1;q.push(j);fa[j][0] = t;for (int k = 1; k <= 15; k++) {fa[j][k] = fa[fa[j][k - 1]][k - 1];}}}}
}
void dfs(int u, int fa) {for (auto [v, c] : e[u]) {if (v == fa) continue;f[v] = f[u] + c;dfs(v, u);}
}
int lca(int a, int b) {if (depth[a] < depth[b]) swap(a, b);for (int k = 15; k >= 0; k--) {if (depth[fa[a][k]] >= depth[b]) {a = fa[a][k];}}if (a == b) return a;for (int k = 15; k >= 0; --k) {if (fa[a][k] != fa[b][k]) {a = fa[a][k];b = fa[b][k];}}return fa[a][0];
}
void solve()
{cin >> n >> m;for (int i = 0; i < n - 1; ++i) {int u, v , c;cin >> u >> v >> c;e[u].push_back({v, c});e[v].push_back({u, c});}bfs(1);dfs(1, -1);std::vector<LL> g(m + 1), w(m + 1);for (int i = 1; i <= m; ++i) cin >> g[i];LL ans = 0;for (int i = 1; i < m; ++i) {int u = g[i], v = g[i + 1];int z = lca(u, v);w[i] = f[u] + f[v] - 2 * f[z];ans += w[i];}for (int i = 1; i <= m; ++i) {if (i == 1) cout << ans - w[1] << " ";else if (i == m) cout << ans - w[m - 1] << " ";else {LL res = ans - w[i] - w[i - 1];int u = g[i - 1], v = g[i + 1];int z = lca(u, v);res += f[u] + f[v] - 2 * f[z];cout << res << " ";}}
}
int main()
{ios_base :: sync_with_stdio(false);cin.tie(0); cout.tie(0);int t = 1;while (t--){solve();}return 0;
}

试题 J. 砍树

1.题目描述

   给定一棵由 nnn 个结点组成的树以及 mmm 个不重复的无序数对 (a1,b1),(a2,b2),...,(am,bm)(a1, b1), (a_2, b_2),. . . , (a_m, b_m)(a1,b1),(a2,b2),...,(am,bm),其中 aiaiai 互不相同,bib_ibi 互不相同,ai,bj(1≤i,j≤m)a_i , b_j(1 ≤ i, j ≤ m)ai,bj(1i,jm)
   小明想知道是否能够选择一条树上的边砍断,使得对于每个 (ai,bi)(ai , bi)(ai,bi) 满足 aiaiaibibibi 不连通,如果可以则输出应该断掉的边的编号(编号按输入顺序从 111 开始),否则输出 −1-11

2. 解题思路

   又是 LCALCALCA 模板题啊,但我之前没做过(反正也写不出 LCALCALCA)。考虑一对无序数对的点 xxxyyy ,如果我们砍掉某条边可以让这两个点不连通,那么这条边一定是从 xxxyyy 路径上的一点,我们可以让从 xxxyyy 路径的边权值都加1。这个操作我们可以使用树上差分。 对于 mmm 个无序数对我们都如此操作,最后如果某条边的权值为 mmm 则说明它符合条件,我们选出符合条件编号最大的那条边就是答案,如果没有权值为 mmm 的边则说明无解。

3. 模板代码

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef unsigned long long uLL;
typedef pair<int, int> PII;
#define pb(s) push_back(s);
#define SZ(s) ((int)s.size());
#define ms(s,x) memset(s, x, sizeof(s))
#define all(s) s.begin(),s.end()
const int inf = 0x3f3f3f3f;
const int mod = 1000000007;
const int N = 200010;int n, m;
std::vector<int> e[N];
int depth[N], fa[N][32];
int f[N];
int root;
int ans;
map<PII, int> mp;
void bfs(int root)
{ms(depth, 0x3f);depth[0] = 0, depth[root] = 1;queue<int> q;q.push(root);while (!q.empty()) {auto t = q.front();q.pop();for (int j : e[t]) {if (depth[j] > depth[t] + 1) {depth[j] = depth[t] + 1;q.push(j);fa[j][0] = t;for (int k = 1; k <= 15; k++) {fa[j][k] = fa[fa[j][k - 1]][k - 1];}}}}
}
int lca(int a, int b) {if (depth[a] < depth[b]) swap(a, b);for (int k = 15; k >= 0; k--) {if (depth[fa[a][k]] >= depth[b]) {a = fa[a][k];}}if (a == b) return a;for (int k = 15; k >= 0; --k) {if (fa[a][k] != fa[b][k]) {a = fa[a][k];b = fa[b][k];}}return fa[a][0];
}
int dfs(int u, int fa) {int res = f[u];for (auto v : e[u]) {if (v == fa) continue;int g = dfs(v, u);if (g == m) {ans = max(ans, mp[ {v, u}]);}res += g;}return res;
}
void solve()
{cin >> n >> m;for (int i = 0; i < n - 1; ++i) {int u, v;cin >> u >> v;mp[ {u, v}] = mp[ {v, u}] = i + 1;e[u].push_back(v);e[v].push_back(u);}bfs(1);for (int i = 0; i < m; ++i) {int u, v;cin >> u >> v;int z = lca(u, v);f[u]++;f[v]++;f[z] -= 2;}dfs(1, -1);cout << (ans == 0 ? -1 : ans) << '\n';
}
int main()
{ios_base :: sync_with_stdio(false);cin.tie(0); cout.tie(0);int t = 1;while (t--){solve();}return 0;
}

相关文章:

第十四届蓝桥杯大赛软件赛省赛(C/C++B组)

目录试题 A. 日期统计1.题目描述2.解题思路3.模板代码试题 B.01 串的熵1.题目描述2.解题思路3.模板代码试题 C. 冶炼金属1.题目描述2. 解题思路3.模板代码试题 D. 飞机降落1.题目描述2. 解题思路3.模板代码试题 E. 接龙数列1.题目描述2. 解题思路3.模板代码试题 F. 岛屿个数1.题…...

Python生成随机验证码

pip install pillow 实现代码 import random from PIL import Image, ImageDraw, ImageFont,ImageFilterdef check_code(width120, height30, char_length5, font_filekumo.ttf, font_size28):code []img Image.new(modeRGB, size(width, height), color(255, 255, 255))draw…...

Longitudinal Change Detection on Chest X-rays Using Geometric Correlation Maps

文章来源&#xff1a;[MICCAI2019] Keywords&#xff1a;Chest X-ray&#xff1b;Longitudinal analysis&#xff1b;Change detection&#xff1b;Geometric correlation 一、本文提出的问题以及解决方案 在胸部X-ray图像的诊断中&#xff0c;医生会考虑与先前检查相比病变的…...

5年功能测试的一些心得

一、前言 功能测试是测试工程师的基础功&#xff0c;很多人功能测试还做不好&#xff0c;就想去做性能测试、自动化测试。很多人对功能测试的理解就是点点点&#xff0c;如何自己不用心去悟&#xff0c;去研究&#xff0c;那么你的职业生涯也就停留在点点点上了。在这里&#…...

在外包做了3年测试,离职后却成功入职字节跳动.....

最近换了份工作&#xff0c;当时和群里的朋友也聊过换工作的话题&#xff0c;他们都觉得这是一次非常冒险的行为&#xff0c;说我这是一次豪赌——成了会有更好的职业发展&#xff0c;没成可能就会出现两三年的发展断层&#xff0c;甚至影响职业生涯路径。一步错&#xff0c;步…...

网络编程套接字( TCP )

目录 1、实现一个TCP网络程序&#xff08;单进程版&#xff09; 1.1、服务端serverTcp.cc文件 服务端创建套接字 服务端绑定 服务端监听 服务端获取连接 服务端提供服务 服务端main函数命令行参数 服务端serverTcp.cc总代码 1.2、客户端clientTcp.cc文件 客户端main函数命令行…...

QT 判断当前操作系统是否为 Windows 8 及以下版本

判断当前操作系统是否为 Windows 8 及以下版本&#xff0c;可以使用 QSysInfo 类中的静态函数 QSysInfo::windowsVersion()&#xff0c;其返回值是一个 QOperatingSystemVersion 类型的对象&#xff0c;包含了当前操作系统的主版本号、次版本号和补丁版本号。我们可以通过比较主…...

走进小程序【五】微信小程序架构之【逻辑层】详解

文章目录&#x1f31f;前言&#x1f31f;小程序架构&#x1f31f;逻辑层 App Service&#x1f31f;注册小程序&#x1f31f;注册页面&#x1f31f;使用 Page 构造器注册页面&#x1f31f;在页面中使用 behaviors&#x1f31f;使用 Component 构造器构造页面&#x1f31f;页面生…...

mysql workbench使用教程

mysql workbench使用教程1、打开workbench&#xff0c;显示如下界面&#xff0c;点击2、连接建立好之后&#xff0c;点击已经建立好的连接&#xff0c;连接mysql服务器1、打开workbench&#xff0c;显示如下界面&#xff0c;点击 填写信息 密码是之前安装MySQL时设置的密码 点击…...

蓝易云:Linux系统常用命令-系列【3】

在Linux中&#xff0c;有许多常用的命令可以用来管理文件、目录、进程等。下面是一些常用的Linux命令的介绍。 1. cd&#xff1a;改变当前目录。例如&#xff0c;cd /home。 2. ls&#xff1a;列出指定目录下的所有文件和子目录。例如&#xff0c;ls -al。 3. rm&#xff1a…...

Nginx实现会话保持,集群模式下session域共享

前言 生产环境下&#xff0c;多数系统为了应对线上多种复杂情况而进行了集群架构的部署&#xff0c;保证系统的高性能、价格有效性、可伸缩性、高可用性等。通常将生产环境下的域名指向Nginx服务&#xff0c;通过它做HTTP协议的Web负载均衡。 session是什么 在计算机中&…...

【SpringMVC】6—SpringMVC拦截器

⭐⭐⭐⭐⭐⭐ Github主页&#x1f449;https://github.com/A-BigTree 笔记链接&#x1f449;https://github.com/A-BigTree/Code_Learning ⭐⭐⭐⭐⭐⭐ 如果可以&#xff0c;麻烦各位看官顺手点个star~&#x1f60a; 如果文章对你有所帮助&#xff0c;可以点赞&#x1f44d;…...

【算法】插入排序

插入排序实现思路&#xff1a;将一个新的数&#xff0c;和前面的比较&#xff0c;只要当前数小于前一个则和前一个交换位置&#xff0c;否则终止&#xff1b;「时间复杂度&#xff1a;O(N^2)&#xff1b;」「空间复杂度&#xff1a;O(1)」 一、标准方式 function insertSort(a…...

java servlet 期刊在线投稿系统jsp编程sqlserver数据库mvc模式开发计算机网页设计

一、源码特点 java servlet 期刊在线投稿系统是一套完善的java web信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统采用serlvetdaobean&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统 主要采用B/S模式开发。 java servlet 期刊在线…...

命名空间和程序集

目录 一、什么是命名空间 1. 命名空间的作用 2. 命名空间跨文件伸展 3.嵌套命名空间 二、using指令 1. using命名空间指令 2. using别名指令 三、程序集的结构 1. 程序集标识符 2.强命名程序集 一、什么是命名空间 1. 命名空间的作用 命名空间是共享命名空间名的一组…...

108、指针进阶

数组名是数组首元素的地址 但是有两个例外&#xff1a; 1、sizeof&#xff08;数组名&#xff09; --数组名表示整个数组&#xff0c;计算的是整个数组的大小&#xff0c;单位是 字节 byte。 2、&数组名 --数组名表示整个数组&#xff0c;取出的是整个数组的地址。 二…...

arm平台交叉编译rt-tests

如果要为ARM平台添加libnuma-dev库&#xff0c;需要在x86平台上进行交叉编译&#xff0c;生成ARM平台可用的库文件。具体步骤如下&#xff1a; 1. ARM平台的交叉编译工具链&#xff0c;例如arm-linux-gnueabihf&#xff0c;可以使用以下命令安装&#xff1a; sudo apt-get in…...

Melis4.0[D1s]:5.测试笔记 - 修改显示测试源码

文章目录1.将显示命令参数固化2.disp_mem源码阅读3.Melis子目录Makefile编写本文是下一篇文章Melis4.0[D1s]:6.mango-MQ-R基于Melis移植lvgl 的基础知识。 1.将显示命令参数固化 从上一篇文章《Melis4.0[D1s]:4.测试笔记 - 内嵌的显示命令》知道&#xff0c;只要2个命令就可以…...

yolov7目标检测:基于自定义数据集完成检测、训练、测试

文章目录 前言一、环境与文件准备1.1、环境配置1.2、源码下载1.3、权重文件下载1.4、详解源码中的文件夹与文件1.5、详解配置参数二、检测模型(detect.py)2.1、自定义检测数据准备2.2、配置参数2.2.1、方式一:打开Pycharm,进入Terminal,输入指令开始检测2.2.2、方式二:点…...

托福高频真词List13 // 附托福TPO阅读真题

目录​​​​​​​ 4.4单词 生词 熟词 4.5真题 4.4单词 生词 &#x1fad0;damagemutilatev.损害&#x1fad0;outlyingfarfar from the centeradj.偏远的&#x1fad0;posterity[pɑːˈsterəti]further generationn.后代&#x1fad0;&#x1fad0;premiseassumpti…...

ffmpeg(四):滤镜命令

FFmpeg 的滤镜命令是用于音视频处理中的强大工具&#xff0c;可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下&#xff1a; ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜&#xff1a; ffmpeg…...

Swagger和OpenApi的前世今生

Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章&#xff0c;二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑&#xff1a; &#x1f504; 一、起源与初创期&#xff1a;Swagger的诞生&#xff08;2010-2014&#xff09; 核心…...

代理篇12|深入理解 Vite中的Proxy接口代理配置

在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...

如何在网页里填写 PDF 表格?

有时候&#xff0c;你可能希望用户能在你的网站上填写 PDF 表单。然而&#xff0c;这件事并不简单&#xff0c;因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件&#xff0c;但原生并不支持编辑或填写它们。更糟的是&#xff0c;如果你想收集表单数据&#xff…...

#Uniapp篇:chrome调试unapp适配

chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器&#xff1a;Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...

排序算法总结(C++)

目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指&#xff1a;同样大小的样本 **&#xff08;同样大小的数据&#xff09;**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...

20个超级好用的 CSS 动画库

分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码&#xff0c;而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库&#xff0c;可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画&#xff0c;可以包含在你的网页或应用项目中。 3.An…...

MySQL 知识小结(一)

一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库&#xff0c;分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷&#xff0c;但是文件存放起来数据比较冗余&#xff0c;用二进制能够更好管理咱们M…...

c++第七天 继承与派生2

这一篇文章主要内容是 派生类构造函数与析构函数 在派生类中重写基类成员 以及多继承 第一部分&#xff1a;派生类构造函数与析构函数 当创建一个派生类对象时&#xff0c;基类成员是如何初始化的&#xff1f; 1.当派生类对象创建的时候&#xff0c;基类成员的初始化顺序 …...

TSN交换机正在重构工业网络,PROFINET和EtherCAT会被取代吗?

在工业自动化持续演进的今天&#xff0c;通信网络的角色正变得愈发关键。 2025年6月6日&#xff0c;为期三天的华南国际工业博览会在深圳国际会展中心&#xff08;宝安&#xff09;圆满落幕。作为国内工业通信领域的技术型企业&#xff0c;光路科技&#xff08;Fiberroad&…...