第十四届蓝桥杯省赛C++ B组所有题目以及题解(C++)【编程题均通过100%测试数据】

news2025/2/1 6:52:10

第一题《日期统计》【枚举】

【问题描述】

小蓝现在有一个长度为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.子序列的长度为 8:
        2.这个子序列可以按照下标顺序组成一个 yyy,ymmdd 格式的日期,并且要求这个日期是 2023 年中的某一天的日期,例如 20230902,20231223。yyyy 表示年份,mm 表示月份,dd 表示天数,当月份或者天数的长度只有一位时需要一个前导零补充。
请你帮小蓝计算下按上述条件一共能找到多少个不同的 2023 年的日期。对于相同的日期你只需要统计一次即可。

【答案提交】

这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

【代码】

#include <iostream>
using namespace std;

int main() {
    int array[100] = {
        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
    };

    int daysInMonth[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    int ans = 0;

    for (int month = 1; month <= 12; ++month) {
        for (int day = 1; day <= daysInMonth[month]; ++day) {
            int dateSeq[8] = {2, 0, 2, 3, month / 10, month % 10, day / 10, day % 10};
            int k = 0;

            for (int i = 0; i < 100; ++i) {
                if (array[i] == dateSeq[k]) {
                    ++k;
                    if (k == 8) {
                        ans++;
                        break;
                    }
                }
            }
        }
    }

    printf("%d\n", ans);
    return 0;
}

【答案】

235


第二题《01串的熵01串的熵》【模拟】

【问题描述】

【答案提交】

这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

题解来源:用户登录

【代码】

//首先要理解题目的意思
//不要被题目的数据吓到
//例如当S等于100时,
100的信息熵 =
 -0的个数*(0的个数/总位数)*log2(0的个数/总位数)-1的个数*(1的个数/总位数)*log2(1的个数/总位数)
//然后我们  长度为23333333的01串 从0的个数为0开始枚举,直到1.0*23333333/2
(因为0的个数比1的个数少,所以一定不会超过23333333的一半)
//注意点:在判断浮点数是否等于一个数的时候不能if(x == y)  
而是要判断它是否属于某一范围,或者二者差的绝对值属于某一范围一般取<0.01
#include<stdio.h>
#include<math.h>
int main(){
    double n = 23333333,sum = 0;
    int o = 0,l = 0;
    for(o = 0;o <= n/2;o++){
        sum = 0;
        sum -= o*(o / n) * log2(o / n) + (n - o)*((n - o) / n) * log2((n - o) / n);
        if(sum > 11625907.5 && sum < 11625907.6){
            printf("%d",o);
            break;
        }
    }
    return 0;
}

【答案】

11027421


第三题《冶炼金属》【数学】

本题题解参考这篇博客:【数学】第十四届蓝桥杯省赛C++ B组《冶炼金属》(C++)


第四题《飞机降落》 【DFS+贪心】

本题题解参考这篇博客:【DFS+贪心】第十四届蓝桥杯省赛C++ B组《飞机降落》(C++)


第五题《接龙数列》 【DP】

本题题解参考这篇博客:【DP】第十四届蓝桥杯省赛C++ B组《接龙数列》(C++)


第六题《岛屿个数》 【DFS】

【题目描述】

【输入格式】

第一行一个整数 T,表示有 T 组测试数据。

接下来输入 T 组数据。

对于每组数据,第一行包含两个用空格分隔的整数 M、N 表示地图大小;接下来输入 M 行,每行包含 N 个字符,字符只可能是 0 或 1

【输出格式】

对于每组数据,输出一行,包含一个整数表示答案。

【数据范围】

对于 30% 的评测用例,1 ≤ M,N ≤ 10。
对于 100% 的评测用例,1 ≤ T ≤ 10,1 ≤ M,N ≤ 50。

【输入样例】

2
5 5
01111
11001
10101
10001
11111
5 6
111111
100001
010101
100001
111111

【输出样例】

1

3

【样例解释】 

对于第一组数据,包含两个岛屿,下面用不同的数字进行了区分:

01111
11001
10201
10001
11111

岛屿 2 在岛屿 1 的 “环” 内部,所以岛屿 2 是岛屿 1 的子岛屿,答案为 1。

对于第二组数据,包含三个岛屿,下面用不同的数字进行了区分:

111111
100001
020301
100001
111111

注意岛屿 3 并不是岛屿 1 或者岛屿 2 的子岛屿,因为岛屿 1 和岛屿 2 中均没有“环”。

【思路】

题解来源:AcWing 4959. 岛屿个数 - AcWing

在地图周围一圈增加一圈0作为外海, dfs遍历外海每一个方格, 若与外海方格相邻的岛屿未被遍历过,那么这就是一个新的岛屿, 再用一个dfs去遍历这个岛。 

【代码】

#include <bits/stdc++.h>
using namespace std;
const int N = 60;
int g[N][N], n, m, res = 0;
bool st[N][N];
int dx[] = {0, 0, 1, -1},
    dy[] = {1, -1, 0, 0};

void dfs_1(int r, int c)
{
    st[r][c] = true;
    //四向连通
    for (int i = 0; i < 4; i ++) 
    {
        int x = dx[i] + r, y = dy[i] + c;
        if (st[x][y] || g[x][y] == 0) continue;
        dfs_1(x, y);
    }
}

void dfs_0(int r, int c)
{
    st[r][c] = true;
    //八向连通
    for (int i = -1; i <= 1; i ++)
        for (int j = -1; j <= 1; j ++)
        {
            int x = r + i, y = c + j;
            if (x < 0 || x > n + 1 || y < 0 || y > m + 1 || st[x][y]) continue;
            if (g[x][y] == 0) dfs_0(x, y);
            else dfs_1(x, y), res ++;
        }
}

int main ()
{
    int T; cin >> T;
    while (T --) 
    {
        memset(g, 0, sizeof g);
        memset(st, false, sizeof st);
        cin >> n >> m; res = 0;
        for (int i = 1; i <= n; i ++)
            for (int j = 1; j <= m; j ++) 
            {
                char c; cin >> c;
                g[i][j] = c - '0';
            }
        dfs_0(0, 0);//从一个外海方格开始dfs
        cout << res << endl;
    }
    return 0;
}

第七题《子串简写》【二分】

【题目描述】

【输入格式】 

第一行包含一个整数 K。

第二行包含一个字符串 S 和两个字符 c_{1} 和 c_{2}

【输出格式】

一个整数代表答案。

【数据范围】

【输入样例】

4
abababdb a b

【输出样例】

6

【样例解释】

符合条件的子串如下所示,中括号内是该子串

[abab]abdb
[ababab]db
[abababdb]
ab[abab]db
ab[ababdb]
abab[abdb]

【思路】

题解来源:AcWing 4960. 子串简写 - AcWing

二分/双指针都行
先按照位置处理出来两个数组
然后枚举开头的位置,二分出结尾在另一个数组的合法位置,直接累加答案

【代码】

#include<iostream>
#include <vector>

using namespace std;

int k;
char st,ed;
string p;

void solve()
{
    cin >> k;
    cin >> p >> st >> ed;
    vector<int> ps, pe;
    for (int i = 0; i < p.size(); i ++)
    {
        if(p[i] == st) ps.push_back(i);
        if(p[i] == ed) pe.push_back(i);
    }

    long long ans = 0;
    for (int i = 0; i < ps.size(); i ++)
    {
        int x = ps[i];
        int X = x + k - 1;
        int l = 0, r = pe.size() - 1;
        while (l < r)
        {
            int mid = l + r >> 1;
            if(pe[mid] >= X) r = mid;
            else l = mid + 1;
        }
        if(pe[l] >= X) ans += pe.size() - l;
    }
    cout << ans << endl;
}

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);

    solve();
    return 0;
}

第八题《整数删除》【双向链表+最小堆】

【题目描述】

给定一个长度为 N 的整数数列:A_{1},A_{2},...,A_{N}

你要重复以下操作 K 次:

每次选择数列中最小的整数(如果最小值不止一个,选择最靠前的),将其删除,并把与它相邻的整数加上被删除的数值。

输出 K 次操作后的序列。

【输入格式】

第一行包含两个整数 N 和 K。

第二行包含 N 个整数,A_{1},A_{2},...,A_{N}

【输出格式】

输出 N − K 个整数,中间用一个空格隔开,代表 K 次操作后的序列。

【数据范围】

对于 20% 的数据,1 ≤ K < N ≤ 10000。
对于 100% 的数据,1 ≤ K < N ≤ 5×10^{5},0 ≤ Ai ≤ 10^{8}

【输入样例】

5 3
1 4 2 8 7

【输出样例】

17 7

【样例解释】

数列变化如下,中括号里的数是当次操作中被选择的数:

[1] 4 2 8 7
5 [2] 8 7
[7] 10 7
17 7

【思路】

题解来源:AcWing 4961. 整数删除 | 堆 | 双向链表 - AcWing

【代码】

#pragma GCC target ("avx")
#pragma GCC optimize (2, 3, "Ofast", "inline", "-ffast-math")
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
__attribute__((unused)) int io_ = []() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr), cout.tie(nullptr);
    return 0;
}();
const int N = 5e5 + 10;
ll v[N], l[N], r[N];

void del(int x) {
    r[l[x]] = r[x], l[r[x]] = l[x];
    v[l[x]] += v[x], v[r[x]] += v[x];
}

int main () {
    int n, k; cin >> n >> k;
    r[0] = 1, l[n + 1] = n;
    priority_queue<pair<ll, int>, vector<pair<ll, int>>, greater<pair<ll, int>>> h;
    for (int i = 1; i <= n; i ++)
        cin >> v[i], l[i] = i - 1, r[i] = i + 1, h.push({v[i], i});
    while (k --) {
        auto p = h.top(); h.pop();
        if (p.first != v[p.second]) h.push({v[p.second], p.second}), k ++;
        else del(p.second);
    }
    int head = r[0];
    while (head != n + 1) {
        cout << v[head]<< " ";
        head = r[head];
    }
    return 0;
}

第九题《景区导游》【LCA】

【题目描述】

某景区一共有 N 个景点,编号 1 到 N。

景点之间共有 N−1 条双向的摆渡车线路相连,形成一棵树状结构。

在景点之间往返只能通过这些摆渡车进行,需要花费一定的时间。

小明是这个景区的资深导游,他每天都要按固定顺序带客人游览其中 K 个景点:A_{1},A_{2},...,A_{k}

今天由于时间原因,小明决定跳过其中一个景点,只带游客按顺序游览其中 K−1 个景点。

具体来说,如果小明选择跳过 A_{i},那么他会按顺序带游客游览 A_{1},A_{2},...,A_{i-1},A_{i+1},...,A_{k}(1 ≤ i ≤ K)。

请你对任意一个 A_{i},计算如果跳过这个景点,小明需要花费多少时间在景点之间的摆渡车上?

【输入格式】

第一行包含 2 个整数 N 和 K。

以下 N−1 行,每行包含 3 个整数 u,v 和 t,代表景点 u 和 v 之间有摆渡车线路,花费 t 个单位时间。

最后一行包含 K 个整数 A_{1},A_{2},...,A_{k} 代表原定游览线路。

【输出格式】

输出 K 个整数,其中第 i 个代表跳过 A_{i} 之后,花费在摆渡车上的时间。

【数据范围】

对于 20% 的数据,2 ≤ K ≤ N ≤ 100。
对于 40% 的数据,2 ≤ K ≤ N ≤ 10000。
对于 100% 的数据,2≤K≤N≤100000,1≤u,v,A_{i}≤N,1≤t≤100000。保证 A_{i} 两两不同。

【输入样例】

6 4
1 2 1
1 3 1
3 4 2
3 5 2
4 6 3
2 6 5 1

【输出样例】

10 7 13 14

【样例解释】

原路线是 2→6→5→1。

当跳过 2 时,路线是 6→5→1,其中 6→5 花费时间 3+2+2=7,5→1 花费时间 2+1=3,总时间花费 10。

当跳过 6 时,路线是 2→5→1,其中 2→5 花费时间 1+1+2=4,5→1 花费时间 2+1=3,总时间花费 7。

当跳过 5 时,路线是 2→6→1,其中 2→6 花费时间 1+1+2+3=7,6→1 花费时间 3+2+1=6,总时间花费 13。

当跳过 1 时,路线时 2→6→55,其中 2→6 花费时间 1+1+2+3=7,6→5 花费时间 3+2+2=7,总时间花费 14。

【代码】

#include <iostream>
#include<cstring>
#include<algorithm>
using namespace std;

typedef long long LL;

const int N = 1e5 + 10, M = N * 2, K = 20;

int h[N], e[M], w[M], ne[M], idx;
int depth[N], f[N][K];
LL d[N];
int q[N];
int n, k;

void add(int a, int b, int c)
{
    e[idx] = b, w[idx] = c, ne[idx] = h[a], h[a] = idx++;
}

void dfs(int u, int fa)
{
    depth[u] = depth[fa] + 1;
    f[u][0] = fa;
    for (int i = 1; i <= 19; i++)
        f[u][i] = f[f[u][i - 1]][i - 1];

    for (int i = h[u]; ~i; i = ne[i])
    {
        int j = e[i];
        if (j == fa) continue;
        d[j] = d[u] + w[i];
        dfs(j, u);
    }
}

int lca(int a, int b)
{
    if (depth[a] < depth[b]) swap(a, b);
    for (int i = 19; ~i; i--)
        if (depth[f[a][i]] >= depth[b])
            a = f[a][i];
    if (a == b) return a;
    for (int i = 19; ~i; i--)
        if (f[a][i] != f[b][i])
        {
            a = f[a][i];
            b = f[b][i];
        }
    return f[a][0];
}

LL get(int a, int b)
{
    int p = lca(a, b);
    return d[a] + d[b] - 2 * d[p];
}

int main()
{
    memset(h, -1, sizeof h);
    scanf("%d%d", &n, &k);
    for (int i = 1; i < n; i++)
    {
        int a, b, c;
        scanf("%d%d%d", &a, &b, &c);
        add(a, b, c), add(b, a, c);
    }
    dfs(1, 0);
    for (int i = 0; i < k; i++) scanf("%d", &q[i]);
    LL sum = 0;
    for (int i = 0; i + 1 < k; i++) sum += get(q[i], q[i + 1]);
    for (int i = 0; i < k; i++)
    {
        LL res = sum;
        // 跳过i(i不是端点),等同于砍掉i-1->i和i->i+1,加上i-1->i+1
        if (i && i != k - 1) res += get(q[i - 1], q[i + 1]) - get(q[i - 1], q[i]) - get(q[i], q[i + 1]);
        // 跳过i(i是左端点),等同于砍掉i->i+1
        else if (!i) res -= get(q[i], q[i + 1]);
        // 跳过i(i是右端点),等同于砍掉i-1->i
        else res -= get(q[i - 1], q[i]);
        printf("%lld ", res);
    }
    puts("");

    return 0;
}

第十题《砍树》【LCA+树上差分】

【题目描述】

【输入格式】

输入共 n+m 行,第一行为两个正整数 n,m。

后面 n−1 行,每行两个正整数 x_{i},y_{i} 表示第 i 条边的两个端点。

后面 m 行,每行两个正整数 a_{i},b_{i}

【输出格式】

一行一个整数,表示答案,如有多个答案,输出编号最大的一个。

【数据范围】

对于 30% 的数据,保证 1 < n ≤ 1000。
对于 100% 的数据,保证 1 < n ≤ 10^{5},1 ≤ m ≤ \frac{n}{2}

【输入样例】

6 2
1 2
2 3
4 3
2 5
6 5
3 6
4 5

【输出样例】

4

【样例解释】

断开第 2 条边后形成两个连通块:{3,4},{1,2,5,6},满足 3 和 6 不连通,4 和 5 不连通。

断开第 4 条边后形成两个连通块:{1,2,3,4},{5,6},同样满足 3 和 6 不连通,4 和 5 不连通。

4 编号更大,因此答案为 4。

【思路】

题解来源:4963. 砍树 - AcWing题库

【代码】

#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;
}

以上内容部分题目题解摘自他人博客题解,在题目处均已标明出处。若有侵权,私信删除。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1555615.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

原生数据开发软件 TablePlus for mac

一款非常好用的本地原生数据开发软件&#xff1a;TablePlus激活版。 软件下载&#xff1a;TablePlus for mac v3.11.0激活版 这款优秀的数据库编辑工具支持 MySQL、SQL Server、PostgreSQL 等多种数据库&#xff0c;具备备份、恢复、云同步等功能。它可以帮助您轻松编辑数据库中…

KUKA机器人安全信号的接入方式

KUKA机器人的安全信号与IO模块是相互独立的&#xff0c;即安全信号不是通过IO信号接入到机器人里。安全信号主要是指:急停、安全门等属于机器人安全控制类的信号。 一、KUKA机器人安全信号的接入方式有以下3种&#xff1a; 1、第一种方式:Profisafe,以软件包的形式安装机器人…

2024最新网络编程 面试题解析

2024最新网络编程 面试题解析 三次握手和四次挥手 三次握手 三次握手是TCP/IP协议中用于建立可靠连接的过程。具体步骤如下&#xff1a; 第一次握手&#xff1a;客户端发送一个带有SYN标志的TCP报文段给服务器&#xff0c;请求建立连接&#xff0c;并进入SYN_SENT状态。 第…

Radash一款JavaScript最新的实用工具库,Lodash的平替!

文章目录 Lodash 的痛点进入正题--Radash特点 举例几个常用的api 一说lodash应该大部分前端同学都知道吧&#xff0c;陪伴我们好多年的JavaScript工具库&#xff0c;但是自从 ES6 出现后就慢慢退出前端人的视线&#xff0c;能ES6写的代码绝对不会用Lodash&#xff0c;也不是完全…

快速上手Spring Cloud 九:服务间通信与消息队列

快速上手Spring Cloud 一&#xff1a;Spring Cloud 简介 快速上手Spring Cloud 二&#xff1a;核心组件解析 快速上手Spring Cloud 三&#xff1a;API网关深入探索与实战应用 快速上手Spring Cloud 四&#xff1a;微服务治理与安全 快速上手Spring Cloud 五&#xff1a;Spring …

回溯dfs和分支限界bfs

一&#xff1a;拓扑排序 207. 课程表 这道题说白了就是在有向图中找环 拓扑排序实际上应用的是贪心算法。 贪心算法简而言之&#xff1a;每一步最优&#xff0c;全局就最优。 每一次都从图中删除没有前驱的顶点&#xff0c;这里并不需要真正的删除操作&#xff0c;通过设置入度…

centos7配置阿里云的镜像站点作为软件包下载源

目录 1、备份 2、下载新的 CentOS-Base.repo 到 /etc/yum.repos.d/ 3、测试 阿里镜像提供的配置方法&#xff1a;centos镜像_centos下载地址_centos安装教程-阿里巴巴开源镜像站 1、备份 [rootlocalhost ~]# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentO…

时序预测 | Matlab实现CPO-BP冠豪猪算法优化BP神经网络时间序列预测

时序预测 | Matlab实现CPO-BP冠豪猪算法优化BP神经网络时间序列预测 目录 时序预测 | Matlab实现CPO-BP冠豪猪算法优化BP神经网络时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab实现CPO-BP冠豪猪算法优化BP神经网络时间序列预测&#xff08;完整源码…

大电流电感的作用和特点

大电流电感又称为高功率电感&#xff0c;一般是指绕线型电感&#xff0c; 一、主要作用 1.在低频时&#xff0c;起蓄能和滤高频&#xff1b; 2.在高频时&#xff0c;它的阻抗特性表现的很明显。有耗能发热&#xff0c;感性效应降低等现象。 简单来说就是对交流信号进行隔离、…

Bun安装与使用

Bun安装与使用。 它目前无法在windows上直接安装使用&#xff0c;必须通过虚拟机安装。 在win10虚拟机中安装 # 查看内核版本 $ uname -srm Linux 6.1.0-10-amd64 x86_64# 安装unzip解压工具 $ sudo apt install unzip# 下载安装脚本并开始安装 curl -fsSL https://bun.sh/ins…

实现一个Google身份验证代替短信验证

最近才知道公司还在做国外的业务&#xff0c;要实现一个登陆辅助验证系统。咱们国内是用手机短信做验证&#xff0c;当然 这个google身份验证只是一个辅助验证登陆方式。看一下演示 看到了嘛。 手机下载一个谷歌身份验证器就可以 。 谷歌身份验证器&#xff0c;我本身是一个基…

Hyper-V 虚拟机设置静态 IP 和外网访问

文章目录 环境说明1 问题简介2 解决过程 环境说明 宿主机操作系统&#xff1a;Windows 11 专业版漏洞复现操作系&#xff1a;debian-live-12.5.0-amd64-standard 1 问题简介 在 Windows 上用自带的 Hyper-V 虚拟机管理应用创建了一个 Debian 12 虚拟机&#xff0c;配置静态 IP…

Ventoy装机

文章目录 Ventoy安装操作系统问题U盘无法识别问题BIOS设置图片 Ventoy安装操作系统问题 当前使用的m.2&#xff08;nvm&#xff09;可以使用在台式机上。 "verification failed sercury violation"这个问题似乎与使用Ventoy创建启动盘并在启用了Secure Boot&#x…

为什么写博客对程序员很重要

之前写过一段时间博客&#xff0c;但是后面半途而废了。最近开始频繁更新&#xff0c;把自己一些学习心得系统得整理后发布出来&#xff0c;希望以后能够坚持写下去。 写博客对程序员有多重要&#xff1f;这个是自己在反思的一个问题&#xff0c;上下班在地铁上想&#xff0c;…

windows下QT如何集成OpenCV

说明 我在windows下使用QT Creator12创建的CMake项目&#xff0c;需要OpenCV的一些功能。由于安装的时候我选择的QT组件都是MInGW的&#xff0c;所以无法使用VS studio版本的dll库。 为什么vs的版本不能用 我安装QT选择的是MinGW版本&#xff0c;本地编译QT工程只能选择MinG…

HarmonyOS实战开发-如何实现一个简单的电子相册应用开发

介绍 本篇Codelab介绍了如何实现一个简单的电子相册应用的开发&#xff0c;主要功能包括&#xff1a; 实现首页顶部的轮播效果。实现页面跳转时共享元素的转场动画效果。实现通过手势控制图片的放大、缩小、左右滑动查看细节等效果。 相关概念 Swiper&#xff1a;滑块视图容…

Matlab-写入mhd和raw医学图像处理格式文件

作者&#xff1a;翟天保Steven 版权声明&#xff1a;著作权归作者所有&#xff0c;商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处 mhd和raw是什么&#xff1f; MHD&#xff08;MetaImage&#xff09;和RAW&#xff08;Raw Image Data&#xff09;是用于医学图像…

数字化坚鹏:小熊电器面向数字化转型的大数据顶层设计实践培训

小熊电器面向数字化转型的大数据顶层设计实践培训圆满结束 ——努力打造“数据技术营销”三轮驱动的数字化领先企业 小熊电器股份有限公司由李一峰创立于2006年&#xff0c;是一家专业从事创意小家电研发、设计、生产和销售的实业型企业。2019年8月23日正式在深交所挂牌上市。…

XUbuntu22.04之Typora快捷键Ctrl+5不生效问题(二百二十六)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

Discourse 最多允许有几个分类级别

和 DISCUZ 不同&#xff0c;DISCUZ 可以允许分类下面还有分类&#xff0c;再继续分类这种嵌套式分类。 Discourse 最多只允许有 2 个分类。 如果你在已有的分类下再继续分类的话&#xff0c;系统会提示错误&#xff1a; 意思就是子分类不能再分子分类。 Discourse 尽量采取了…