Codeforces Round 951 (Div. 2) A~E

A.Guess the Maximum(枚举)

题意:

爱丽丝和鲍勃想出了一个相当奇怪的游戏。他们有一个整数数组 a 1 , a 2 , … , a n a_1,a_2,\ldots,a_n a1,a2,,an。爱丽丝选择了某个整数 k k k并告诉了鲍勃,然后就发生了下面的事情:

  • 鲍勃选择两个整数 i i i j j j( 1 ≤ i < j ≤ n 1\le i\lt j\le n 1i<jn),然后找出整数 a i , a i + 1 , … , a j a_i,a_{i+1},\ldots,a_j ai,ai+1,,aj中的最大值;
  • 如果得到的最大值严格大于 k k k,则爱丽丝获胜,否则鲍勃获胜。

请帮助爱丽丝找出保证她获胜的 k k k的最大值。

分析:

为了最大值尽可能小,爱丽丝会选择所有区间最大值的最小值 − 1 -1 1,那么选择的连续子串越短越优。注意到区间长度越大,这个区间的最大值是随着它不减的,所以如果鲍勃要让爱丽丝选的最小的话,区间长度一定是 2 2 2

枚举所有长度为 2 2 2的连续子串,求出它们最大值的最小值,然后减去 1 1 1输出即可。

代码:

#include<bits/stdc++.h>

typedef long long LL;
using namespace std;
const int N = 1e6 + 10;

LL n, a[N];

void solve() {
    LL ans = 1e9;
    cin >> n;
    for (int i = 1; i <= n; i++) {
        cin >> a[i];
        if (i > 1)
            ans = min(ans, max(a[i], a[i - 1]));
    }
    cout << ans - 1 << endl;
}

int main() {
    int t;
    cin >> t;
    while (t--)
        solve();
    return 0;
}

B.XOR Sequences(数学)

题意:

给你两个不同的非负整数 x x x y y y。考虑两个无穷序列 a 1 , a 2 , a 3 , … a_1,a_2,a_3,\ldots a1,a2,a3, b 1 , b 2 , b 3 , … b_1,b_2,b_3,\ldots b1,b2,b3,,其中

  • a n = n ⊕ x a_n=n\oplus x an=nx
  • b n = n ⊕ y b_n=n\oplus y bn=ny

x ⊕ y x\oplus y xy表示整数 x x x y y y的按位异或运算。

例如,有了 x = 6 x=6 x=6之后,序列 a a a的前 8 8 8个元素将如下所示: [ 7 , 4 , 5 , 2 , 3 , 0 , 1 , 14 , … ] [7,4,5,2,3,0,1,14,\ldots] [7,4,5,2,3,0,1,14,]。请注意,元素的索引以 1 1 1开始。

你的任务是找出序列 a a a b b b的最长公共子段 † ^\dagger 的长度。换句话说,求某个 i , j ≥ 1 i,j\ge 1 i,j1的最大整数 m m m,使得 a i = b j , a i + 1 = b j + 1 , … , a i + m − 1 = b j + m − 1 a_i=b_j,a_{i+1}=b_{j+1},\ldots,a_{i+m-1}=b_{j+m-1} ai=bj,ai+1=bj+1,,ai+m1=bj+m1

† ^\dagger 序列 p p p的一个子段是序列 p l , p l + 1 , … , p r p_l,p_{l+1},\ldots,p_r pl,pl+1,,pr,其中 1 ≤ l ≤ r 1\le l\le r 1lr

分析:

考虑性质,发现对于给定的数 a , b a,b a,b,设 c n t cnt cnt表示其二进制下后 k k k位(从第 0 0 0位开始)全部相同的最大的 k k k,则答案为 2 c n t 2^{cnt} 2cnt

比如对于样例57、37:

  • 57:111001
  • 37:100101

其后的 2 2 2 01 01 01相等且第 2 2 2位不相等,则答案为 2 2 = 4 2^2=4 22=4

所以我们直接扫描二进制位找 c n t cnt cnt即可。

证明过程:

KaTeX parse error: Undefined control sequence: \oplusx at position 2: a\̲o̲p̲l̲u̲s̲x̲=b\oplusy a ⊕ ( x − 1 ) ≠ b ⊕ ( y − 1 ) a\oplus(x−1)\neq b\oplus(y−1) a(x1)=b(y1)

则这样的 x x x y y y一定是后面 c n t cnt cnt位全为 0 0 0,其余位单独构造使其满足上述条件的数字。

那么根据定义, a , b a,b a,b的第 c n t cnt cnt位一定不相等,这等价于如果加上大于等于 2 c n t 2^{cnt} 2cnt的数字则会发生进位,影响前面构造的结果。

所以加上的数字属于闭区间 [ 0 , 2 c n t − 1 ] [0,2^{cnt}−1] [0,2cnt1],一共 2 c n t 2^{cnt} 2cnt个,即长度为 2 c n t 2^{cnt} 2cnt

证毕。

代码:

#include<bits/stdc++.h>

typedef long long LL;
using namespace std;
const int MOD = 998244353;

void solve() {
    LL a, b, ans = 0;
    cin >> a >> b;
    for (int i = 0; i < 32; ++i) {
        if ((a >> i & 1) != (b >> i & 1))
            break;
        ans++;
    }
    ans = (1 << ans);
    cout << ans << endl;
}

int main() {
    int t;
    cin >> t;
    while (t--)
        solve();
    return 0;
}

C.Earning on Bets(思维)

题意:

有人提议让您玩一个游戏。在这个游戏中,有 n n n种可能的结果,对于每一种结果,您都必须下注一定整数的硬币。如果第 i i i个结果是赢的,您将获得与您在该结果上的投注额相等的硬币,再乘以 k i k_i ki。请注意, n n n个结果中正好有一个结果是赢的。

你的任务是决定如何分配硬币,以便在任何一个结果中都能获胜。更正式地说,你对所有结果下注的硬币总数必须严格小于每个可能的获胜结果所得到的硬币数。

分析:

对于第 i i i个结果,每下注 1 k i \frac{1}{k_i} ki1个硬币就能期望获得 1 1 1个硬币,所以我们可以得到:设 S = ∑ i = 1 n 1 k i S=\sum^n_{i=1}\frac{1}{k_i} S=i=1nki1,当 S ≥ 1 S≥1 S1时,本题无解,当 S < 1 S<1 S<1时,每种结果下注 1 k i \frac{1}{k_i} ki1个硬币即可。但题目要求每种结果下注的硬币数必须是整数。所以要把每个 1 k i \frac{1}{k_i} ki1乘上 l c m ( k 1 , k 2 , … , k n ) lcm(k_1,k_2,…,k_n) lcm(k1,k2,,kn)。由于 k i ≤ 20 k_i≤20 ki20,所以 l c m ( k 1 , k 2 , … , k n ) lcm(k_1,k_2,…,k_n) lcm(k1,k2,,kn)的最大值是 l c m ( 5 , 7 , 9 , 11 , 13 , 16 , 17 , 19 ) = 232792560 lcm(5,7,9,11,13,16,17,19)=232792560 lcm(5,7,9,11,13,16,17,19)=232792560

代码:

#include<bits/stdc++.h>

typedef long long LL;
using namespace std;
const int MOD = 998244353;
LL a[55];

void solve() {
    int n;
    cin >> n;
    for (int i = 1; i <= n; i++) {
        cin >> a[i];
    }
    if (n == 1) {
        cout << "1" << endl;
        return;
    }
    if (n >= 20) {
        cout << "-1" << endl;
        return;
    }
    LL LCM = a[1] * a[2] / gcd(a[1], a[2]);
    for (int i = 3; i <= n; i++) {
        LCM = LCM * a[i] / gcd(LCM, a[i]);
    }
    LL ans = 0;
    for (int i = 1; i <= n; i++) {
        ans += LCM / a[i];
    }
    if (ans >= LCM) {
        cout << "-1" << endl;
        return;
    }
    for (int i = 1; i <= n; i++) {
        cout << LCM / a[i] << " ";
    }
    cout << endl;
}

int main() {
    int t;
    cin >> t;
    while (t--) {
        solve();
    }
    return 0;
}

D.Fixing a Binary String(模拟)

题意:

给你一个长度为 n n n的二进制字符串 s s s,由 0 0 0 1 1 1组成。您可以执行以下操作一次

  1. 选择一个整数 p p p( 1 ≤ p ≤ n 1\le p\le n 1pn)。
  2. 反转子串 s 1 s 2 … s p s_1 s_2\ldots s_p s1s2sp。完成此步骤后,字符串 s 1 s 2 … s n s_1 s_2\ldots s_n s1s2sn将变为 s p s p − 1 … s 1 s p + 1 s p + 2 … s n s_p s_{p-1}\ldots s_1 s_{p+1}s_{p+2}\ldots s_n spsp1s1sp+1sp+2sn
  3. 然后,将字符串 s s s向左循环移动 p p p次。这一步之后,初始字符串 s 1 s 2 … s n s_1s_2\ldots s_n s1s2sn将变成 s p + 1 s p + 2 … s n s p s p − 1 … s 1 s_{p+1}s_{p+2}\ldots s_n s_p s_{p-1}\ldots s_1 sp+1sp+2snspsp1s1

例如,如果用 p = 3 p=3 p=3对字符串 110001100110 110001100110 110001100110进行操作,第二步操作后,字符串将变为011001100110,第三步操作后,字符串将变为001100110011

如果满足两个条件,字符串 s s s就会被称为 k − p r o p e r k-proper kproper

  • s 1 = s 2 = … = s k s_1=s_2=\ldots=s_k s1=s2==sk;
  • s i + k ≠ s i s_{i+k}\neq s_i si+k=si为任意 i i i( 1 ≤ i ≤ n − k 1\le i\le n-k 1ink).

例如,在 k = 3 k=3 k=3中,字符串 000 000 000 111000111 111000111 111000111 111000 111000 111000 k − p r o p e r k-proper kproper,而字符串 000000 000000 000000 001100 001100 001100 1110000 1110000 1110000则不是。

给你一个整数 k k k,它 n n n整除。请找出一个整数 p p p( 1 ≤ p ≤ n 1\le p\le n 1pn),使得在进行运算后,字符串 s s s变成 k k k(或确定这是不可能的)。需要注意的是,如果字符串最初是 k − p r o p e r k-proper kproper,那么仍然需要对它进行一次操作。

分析:

按照原题中的方案按顺序判断前缀是否是合法 k − p r o p e r k-proper kproper串的前缀,直到当前前缀不合法或者判断到 n + 1 n+1 n+1停止。

如果判断到 n + 1 n+1 n+1,那么说明原串是 k − p r o p e r k-proper kproper串。选择 p = n p=n p=n将一整个串翻转即可。

否则,找到一个删掉该前缀后满足后面的串存在至少有 k k k个连续值的最长合法前缀进行操作,然后判断操作后的串是否为 k − p r o p e r k-proper kproper串即可。

因为如果操作后的串不为 k − p r o p e r k-proper kproper串,那么换一个位置操作就一定会使得该不合法前缀存在或者操作后的串前 k k k个值不合法,所以这种情况下操作是唯一的。

代码:

#include<bits/stdc++.h>

typedef long long LL;
using namespace std;
const int N = 1010100;
char s[N];
LL n, a[N], b[N], k;

bool finalcheck(LL x) {
    LL i, j = 0;
    for (i = x + 1; i <= n; i++) {
        j++;
        b[j] = a[i];
    }
    for (i = x; i >= 1; i--) {
        j++;
        b[j] = a[i];
    }
    for (i = 2; i <= k; i++) {
        if (b[i] != b[i - 1]) {
            return false;
        }
    }
    for (i = k + 1; i <= n; i++) {
        if (b[i] == b[i - k]) {
            return false;
        }
    }
    return true;
}

void solve() {
    LL lst = 1, t, pos;
    cin >> n >> k >> s + 1;
    for (int i = 1; i <= n; i++) {
        a[i] = s[i] - '0';
    }
    a[0] = -1;
    for (int i = n; i >= 1; i--) {
        if (a[i] != a[i - 1]) {
            break;
        }
    }
    for (int i = 2; i <= n; i++) {
        if (a[i] != a[i - 1]) {
            t = i - lst;
            pos = i - 1;
            lst = i;
            if (t != k) {
                if (t < k) {
                    if (finalcheck(pos)) {
                        cout << pos << endl;
                        return;
                    } else {
                        cout << "-1" << endl;
                        return;
                    }
                } else if (t <= k * 2) {
                    if (finalcheck(pos - k)) {
                        cout << pos - k << endl;
                        return;
                    } else {
                        cout << "-1" << endl;
                        return;
                    }
                } else {
                    cout << "-1" << endl;
                    return;
                }
            }
        }
    }
    if (finalcheck(n)) {
        cout << n << endl;
        return;
    } else {
        cout << "-1" << endl;
        return;
    }
}

int main() {
    int t;
    cin >> t;
    while (t--) {
        solve();
    }
    return 0;
}

E.Manhattan Triangle(数学)

题意:

两点 ( x 1 , y 1 ) (x_1,y_1) (x1,y1) ( x 2 , y 2 ) (x_2,y_2) (x2,y2)之间的曼哈顿距离定义为

∣ x 1 − x 2 ∣ + ∣ y 1 − y 2 ∣ |x_1-x_2|+|y_1-y_2| x1x2+y1y2

我们把平面上每对曼哈顿距离相等的三点称为一个曼哈顿三角形。

给你一组成对的不同点和一个偶数整数 d d d。你的任务是从给定的集合中找出由三个不同点组成的曼哈顿三角形,其中任意一对顶点之间的曼哈顿距离等于 d d d

分析:

观察发现,在每个曼哈顿三角形中都有两个点,使得 ∣ x 1 − x 2 ∣ = ∣ y 1 − y 2 ∣ |x_1-x_2|=|y_1-y_2| x1x2=y1y2

先用 ( x + y ) (x+y) (x+y)的值来分配所有的点。

对于每个点 ( x , y ) (x,y) (x,y)用lower_bound在相应集合中找到点 ( x + d / 2 , y − d / 2 ) (x+d/2,y-d/2) (x+d/2,yd/2)。然后我们必须找到第三个点:它可以在 ( x + y + d ) (x+y+d) (x+y+d) ( x + y − d ) (x+y-d) (x+yd)对角线上。它们在 x x x坐标上的边界分别是 [ x + d / 2 , x + d ] [x+d/2,x+d] [x+d/2,x+d] [ x − d / 2 , x ] [x-d/2,x] [xd/2,x]同样使用lower_bound找到。

代码:

#include<bits/stdc++.h>

using namespace std;
const int MOD = 998244353;
const int MAXC = 1e5;
const int MAXD = 4e5 + 10;

set<pair<int, int>> diag[MAXD];

void solve() {
    int n, d;
    cin >> n >> d;
    vector<int> x(n), y(n);
    for (int i = 0; i < n; i++) {
        cin >> x[i] >> y[i];
        x[i] += MAXC;
        y[i] += MAXC;
    }
    bool found = false;
    {
        for (int i = 0; i < n; i++) {
            diag[x[i] + y[i]].insert({x[i], i});
        }
        for (int i = 0; i < n; i++) {
            auto it1 = diag[x[i] + y[i]].lower_bound({x[i] + d / 2, -1});
            if (it1 == diag[x[i] + y[i]].end() || it1->first != x[i] + d / 2)
                continue;
            if (x[i] + y[i] + d < MAXD) {
                auto it2 = diag[x[i] + y[i] + d].lower_bound({x[i] + d / 2, -1});
                if (it2 != diag[x[i] + y[i] + d].end() && it2->first <= it1->first + d / 2) {
                    cout << i + 1 << " " << it1->second + 1 << " " << it2->second + 1 << endl;
                    found = true;
                    break;
                }
            }
            if (x[i] + y[i] - d >= 0) {
                auto it2 = diag[x[i] + y[i] - d].lower_bound({x[i] - d / 2, -1});
                if (it2 != diag[x[i] + y[i] - d].end() && it2->first <= it1->first - d / 2) {
                    cout << i + 1 << " " << it1->second + 1 << " " << it2->second + 1 << endl;
                    found = true;
                    break;
                }
            }
        }
        for (int i = 0; i < n; i++) {
            diag[x[i] + y[i]].erase({x[i], i});
        }
    }
    if (!found) {
        for (int i = 0; i < n; i++) {
            y[i] -= 2 * MAXC;
            diag[x[i] - y[i]].insert({x[i], i});
        }
        for (int i = 0; i < n; i++) {
            auto it1 = diag[x[i] - y[i]].lower_bound({x[i] + d / 2, -1});
            if (it1 == diag[x[i] - y[i]].end() || it1->first != x[i] + d / 2)
                continue;
            if (x[i] - y[i] + d < MAXD) {
                auto it2 = diag[x[i] - y[i] + d].lower_bound({x[i] + d / 2, -1});
                if (it2 != diag[x[i] - y[i] + d].end() && it2->first <= it1->first + d / 2) {
                    cout << i + 1 << " " << it1->second + 1 << " " << it2->second + 1 << endl;
                    found = true;
                    break;
                }
            }
            if (x[i] - y[i] - d >= 0) {
                auto it2 = diag[x[i] - y[i] - d].lower_bound({x[i] - d / 2, -1});
                if (it2 != diag[x[i] - y[i] - d].end() && it2->first <= it1->first - d / 2) {
                    cout << i + 1 << " " << it1->second + 1 << " " << it2->second + 1 << endl;
                    found = true;
                    break;
                }
            }
        }
        for (int i = 0; i < n; i++) {
            diag[x[i] - y[i]].erase({x[i], i});
        }
    }
    if (!found) {
        cout << "0 0 0" << endl;
    }
}

int main() {
    int t;
    cin >> t;
    while (t--) {
        solve();
    }
    return 0;
}

赛后交流

在比赛结束后,会在交流群中给出比赛题解,同学们可以在赛后查看题解进行补题。

群号: 704572101,赛后大家可以一起交流做题思路,分享做题技巧,欢迎大家的加入。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

UiPath发送邮件给多人时需要注意哪些限制?

UiPath发送邮件给多人的步骤&#xff1f;如何使用UiPath发信&#xff1f; 尽管UiPath提供了强大的邮件发送功能&#xff0c;但在批量发送邮件时&#xff0c;有一些限制和注意事项是我们必须了解的。AokSend将详细介绍这些限制&#xff0c;并提供一些优化建议。 UiPath发送邮件…

ArrayList和LinkedList的区别!!!

总结&#xff1a; 1、数据结构的实现 ArrayList&#xff1a;动态数组。 LinkedList&#xff1a;双向链表。 2、时间复杂度不同 ArrayList&#xff1a;O(1) LinkedList: O(n) ①&#xff1a;随机访问---- ArrayList > LinkedList &#xff08;ArrayList采用下标&#xff0…

frps 0.33

一个模拟示例 下载windows版本的frfps 需要准备的测试设备 一台frp服务器一台frp客户端PCsscom5.exe测试软件开2个,来模拟野外的设备和本地连接野外设备的软件。原理 frp服务器搭建了一条中转的桥梁,frp的客户端在本地做好端口映射后,本地的设备软件就可以连接到野外的设…

第34章-WLAN

1. 概述 2. WLAN模式 3. 相关概念 1. 概述 ① 定义WLAN(Wireless Local Area Network,无线局域网)&#xff0c;是一种技术&#xff1b; ② WLAN技术&#xff1a; Wi-Fi WAPI&#xff1a;中国强制标准&#xff1b; 例子&#xff1a;苹果手机 -- 设置 -- 国行(无线局域网设置) …

大众点评全国学习培训POI采集99万家-2024年5月底

大众点评全国学习培训POI采集99万家-2024年5月底 店铺POI点位示例&#xff1a; 店铺id k40VtNBN3bixFJIU 店铺名称 梦想钢琴成人钢琴(珠江新城总部) 十分制服务评分 9.4 十分制环境评分 9.4 十分制划算评分 9.4 人均价格 80 评价数量 6705 店铺地址 华穗路263号双城国…

Python酷库之旅-比翼双飞情侣库(01)

目录 一、xlrd库的由来 二、xlrd库优缺点 1、优点 1-1、支持多种Excel文件格式 1-2、高效性 1-3、开源性 1-4、简单易用 1-5、良好的兼容性 2、缺点 2-1、对.xlsx格式支持有限 2-2、功能相对单一 2-3、更新和维护频率低 2-4、依赖外部资源 三、xlrd库的版本说明 …

1 机器人软件开发学习所需通用技术栈(一)

机器人软件工程师技术路线&#xff08;如有缺失&#xff0c;欢迎补充&#xff09; 1. 机器人软件开发工程师技术路线 1.1 基础知识 C/C编程&#xff1a;掌握C/C语言基础&#xff0c;包括数据结构、算法、内存管理等。操作系统&#xff1a;了解Linux或Windows等操作系统的基本…

程序固化——FPGA学习笔记6

一、固化文件介绍 BIN:一般是由Vivado软件编译产生的&#xff0c;存储在特定目录下的二进制文件 MCS:一般通过VivadoGUl界面操作或者TCL命令生成&#xff0c;MCS文件里包含了BIN文件的内容&#xff0c;除此之外&#xff0c;每行的开始有地址信息&#xff0c;最后一个Byte是CRC校…

Java---BigInteger和BigDecimal和枚举

1.简介 1.BigInteger可以支持任意长度的整数 2.BigDecimal可以支持任意精度的浮点数 3.用来做精确计算 2.创建方式 new BigInteger(); new BigInteger(参数1,进制)&#xff1a;可以将不同进制转成10进制显示 new BigDecimal(); BigInteger.valueOf(); BigDecimal.valueOf();…

吴恩达2022机器学习专项课程C2W3:实验Lab_01模型评估与选择

这里写目录标题 导入模块与实验环境配置回归1.构建并可视化数据集2.分割数据集3.重新绘制数据集3.特征缩放4.评估模型&#xff1a;计算训练集的误差5.评估模型&#xff1a;计算交叉验证集的误差 添加多项式1.构建多项式特征集2.缩放特征3.使用标准化的计训练集和交叉验证集&…

搭建一个简单的深度神经网络

目录 一、引入所需要的库 二、制作数据集 三、搭建神经网络 四、训练网络 五、测试网络 本博客实验环境为jupyter 一、引入所需要的库 torch库是核心&#xff0c;其中torch.nn 提供了搭建网络所需的所有组件&#xff0c;nn即神经网络。matplotlib类似与matlab&#xff0…

136G全国1m土地覆盖数据

数据是GIS的血液&#xff01; 我们现在为你分享一个136G的全国土地覆盖数据&#xff0c;该数据的分辨率为1米&#xff0c;你可以在文末查看领取方法。 数据概况 为满足对更精确地感知国土面积的需求&#xff0c;来自武汉大学和中国地质⼤学的团队利用低成本的激光扫描仪&…

SAP CS01/CS02/CS03 BOM创建维护删除BAPI使用及增强改造

BOM创建维护删除相关BAPI的使用代码参考示例&#xff0c;客户电脑只能远程桌面&#xff0c;代码没法复制粘贴出来&#xff0c;只能贴图。 创建及修改BAPI: CSAP_MAT_BOM_MAINTAIN。 删除BAPI: CSAP_MAT_BOM_DELETE。 改造BAPI: CSAP_MAT_BOM_MAINTAIN 改造点1&#xff1a;拷…

[LitCTF 2023]Virginia(变异凯撒)

题目&#xff1a; 首先利用网站进行维吉尼亚解密&#xff08;第一段和第二段密钥不同&#xff0c;两段无关&#xff0c;可只解密第二段&#xff09; 第二段解密结果&#xff1a; Please send this message to those people who mean something to you,to those who have touch…

雪球产品可能要远离普通人了

最近有消息说&#xff0c;在年初发生大规模敲入事件后&#xff0c;雪球产品的购买门槛可能从300w提升至1000w。 那么在这个时间&#xff0c;了解一下雪球产品到底是什么&#xff0c;运行原理是什么。 第一种 经典雪球 经典雪球比较容易理解&#xff0c;设定好了固定的敲出条件…

Java从放弃到继续放弃

并发编程 为什么需要多线程&#xff1f; 由于硬件的发展&#xff0c;CPU的核数增多&#xff0c;如果仍然使用单线程对CPU资源会造成浪费。同时&#xff0c;单线程也会出现阻塞的问题。所以&#xff0c;选择向多线程转变。 多线程的使用使得程序能够并行计算&#xff0c;提高计…

HTTPS请求阶段图解分析

HTTPS请求阶段分析 请求阶段分析 请求阶段分析 一个完整、无任何缓存、未复用连接的 HTTPS 请求需要经过以下几个阶段&#xff1a; DNS 域名解析、TCP 握手、SSL 握手、服务器处理、内容传输。 一个 HTTPS 请求共需要 5 个 RTT 1 RTT&#xff08;域名解析&#xff09; 1 RTT…

当你的AirPods没声音或有异常时怎么办?这里提供几个解决办法

你的AirPods听起来比以前安静吗?一个AirPod的声音比另一个大吗?这里有一些技巧可以帮助你提高音量,消除与音量相关的问题。 调整AirPods的音量 在我们深入研究修复AirPods的更技术性方法之前,让我们先检查一下它们是否处于最佳音量水平,并在你尝试更改音量时正确响应。如…

C语言入门系列:变量 —— 存储数据的容器

1. 变量及其作用 想象一下&#xff0c;你正在编写一个程序来记录学生的成绩。你需要一个地方来暂时存放这些成绩&#xff0c;这就是变量的用武之地。 变量不仅可以存储数值&#xff0c;还能保存字符、布尔值等多种数据类型&#xff0c;使你的程序能够处理多样化的信息。 代码…

vue3中使用defineProps、defineEmits和defineExpose

一、defineProps 父组件通过 v-bind 绑定一个数据&#xff0c;然后子组件通过 defineProps 接受传过来的值。 父组件&#xff1a; <template><StudyDefineProps :title"title" /> </template><script setup lang"ts"> import { r…