CSP-J第二轮试题-2021年-1.2题

文章目录

    • 参考:
    • 总结
  • [CSP-J 2021] 分糖果
    • 题目背景
    • 题目描述
    • 输入格式
    • 输出格式
    • 样例 #1
      • 样例输入 #1
      • 样例输出 #1
    • 样例 #2
      • 样例输入 #2
      • 样例输出 #2
    • 样例 #3
      • 样例输入 #3
      • 样例输出 #3
    • 提示
    • 答案1
    • 答案2-优化
  • [CSP-J 2021] 插入排序
    • 题目描述
    • 输入格式
    • 输出格式
    • 样例 #1
      • 样例输入 #1
      • 样例输出 #1
    • 提示
    • 答案1
    • 答案2
    • 答案3
  • 现场真题注意事项

在这里插入图片描述

参考:

https://www.luogu.com.cn/problem/P7909

总结

本系列为CSP-J/S算法竞赛真题讲解,会按照年份分析每年的真题,并给出对应的答案。本文为2021年真题。
https://www.luogu.com.cn/problem/list?tag=343&page=1

[CSP-J 2021] 分糖果

题目背景

红太阳幼儿园的小朋友们开始分糖果啦!

题目描述

红太阳幼儿园有 n n n 个小朋友,你是其中之一。保证 n ≥ 2 n \ge 2 n2

有一天你在幼儿园的后花园里发现无穷多颗糖果,你打算拿一些糖果回去分给幼儿园的小朋友们。

由于你只是个平平无奇的幼儿园小朋友,所以你的体力有限,至多只能拿 R R R 块糖回去。

但是拿的太少不够分的,所以你至少要拿 L L L 块糖回去。保证 n ≤ L ≤ R n \le L \le R nLR

也就是说,如果你拿了 k k k 块糖,那么你需要保证 L ≤ k ≤ R L \le k \le R LkR

如果你拿了 k k k 块糖,你将把这 k k k 块糖放到篮子里,并要求大家按照如下方案分糖果:只要篮子里有不少于 n n n 块糖果,幼儿园的所有 n n n 个小朋友(包括你自己)都从篮子中拿走恰好一块糖,直到篮子里的糖数量少于 n n n 块。此时篮子里剩余的糖果均归你所有——这些糖果是作为你搬糖果的奖励

作为幼儿园高质量小朋友,你希望让作为你搬糖果的奖励的糖果数量(而不是你最后获得的总糖果数量!)尽可能多;因此你需要写一个程序,依次输入 n , L , R n, L, R n,L,R,并输出你最多能获得多少作为你搬糖果的奖励的糖果数量。

输入格式

输入一行,包含三个正整数 n , L , R n, L, R n,L,R,分别表示小朋友的个数、糖果数量的下界和上界。

输出格式

输出一行一个整数,表示你最多能获得的作为你搬糖果的奖励的糖果数量。

样例 #1

样例输入 #1

7 16 23

样例输出 #1

6

样例 #2

样例输入 #2

10 14 18

样例输出 #2

8

样例 #3

样例输入 #3

见附件中的 candy/candy3.in。

样例输出 #3

见附件中的 candy/candy3.ans。

提示

【样例解释 #1】

k = 20 k = 20 k=20 块糖放入篮子里。

篮子里现在糖果数 20 ≥ n = 7 20 \ge n = 7 20n=7,因此所有小朋友获得一块糖;

篮子里现在糖果数变成 13 ≥ n = 7 13 \ge n = 7 13n=7,因此所有小朋友获得一块糖;

篮子里现在糖果数变成 6 < n = 7 6 < n = 7 6<n=7,因此这 6 6 6 块糖是作为你搬糖果的奖励

容易发现,你获得的作为你搬糖果的奖励的糖果数量不可能超过 6 6 6 块(不然,篮子里的糖果数量最后仍然不少于 n n n,需要继续每个小朋友拿一块),因此答案是 6 6 6

【样例解释 #2】

容易发现,当你拿的糖数量 k k k 满足 14 = L ≤ k ≤ R = 18 14 = L \le k \le R = 18 14=LkR=18 时,所有小朋友获得一块糖后,剩下的 k − 10 k - 10 k10 块糖总是作为你搬糖果的奖励的糖果数量,因此拿 k = 18 k = 18 k=18 块是最优解,答案是 8 8 8

【数据范围】

测试点 n ≤ n \le n R ≤ R \le R R − L ≤ R - L \le RL
1 1 1 2 2 2 5 5 5 5 5 5
2 2 2 5 5 5 10 10 10 10 10 10
3 3 3 10 3 {10}^3 103 10 3 {10}^3 103 10 3 {10}^3 103
4 4 4 10 5 {10}^5 105 10 5 {10}^5 105 10 5 {10}^5 105
5 5 5 10 3 {10}^3 103 10 9 {10}^9 109 0 0 0
6 6 6 10 3 {10}^3 103 10 9 {10}^9 109 10 3 {10}^3 103
7 7 7 10 5 {10}^5 105 10 9 {10}^9 109 10 5 {10}^5 105
8 8 8 10 9 {10}^9 109 10 9 {10}^9 109 10 9 {10}^9 109
9 9 9 10 9 {10}^9 109 10 9 {10}^9 109 10 9 {10}^9 109
10 10 10 10 9 {10}^9 109 10 9 {10}^9 109 10 9 {10}^9 109

对于所有数据,保证 2 ≤ n ≤ L ≤ R ≤ 10 9 2 \le n \le L \le R \le {10}^9 2nLR109

【感谢 hack 数据提供】
wangbinfeng

答案1

#include <bits/stdc++.h>
//#include<cstdio>//必须包含cstdio头文件
//#include<iostream>
using namespace std;int main(){freopen("candy.in","r",stdin);freopen("candy.out","w",stdout);int n,L,R,maxn=-1;cin>>n>>L>>R;for(int k=L;k<=R;k++){maxn = max(maxn,k%n);}cout<<maxn<<endl;//fclose(stdin);//fclose(stdout);return 0;
}

在这里插入图片描述

答案2-优化

在这里插入图片描述

#include <bits/stdc++.h>
//#include<cstdio>//必须包含cstdio头文件
//#include<iostream>
using namespace std;int main(){//freopen("candy.in","r",stdin);//freopen("candy.out","w",stdout);int n,L,R,maxn=-1;cin>>n>>L>>R;if(L%n+R-L >= n-1){cout<<n-1<<endl;}else{cout<<L%n + R - L<<endl;}//fclose(stdin);//fclose(stdout);return 0;
}

[CSP-J 2021] 插入排序

https://www.luogu.com.cn/problem/P7910

题目描述

插入排序是一种非常常见且简单的排序算法。小 Z 是一名大一的新生,今天 H 老师刚刚在上课的时候讲了插入排序算法。

假设比较两个元素的时间为 O ( 1 ) \mathcal O(1) O(1),则插入排序可以以 O ( n 2 ) \mathcal O(n^2) O(n2) 的时间复杂度完成长度为 n n n 的数组的排序。不妨假设这 n n n 个数字分别存储在 a 1 , a 2 , … , a n a_1, a_2, \ldots, a_n a1,a2,,an 之中,则如下伪代码给出了插入排序算法的一种最简单的实现方式:

这下面是 C/C++ 的示范代码:

for (int i = 1; i <= n; i++)for (int j = i; j >= 2; j--)if (a[j] < a[j-1]) {int t = a[j-1];a[j-1] = a[j];a[j] = t;}

这下面是 Pascal 的示范代码:

for i:=1 to n dofor j:=i downto 2 doif a[j]<a[j-1] thenbegint:=a[i];a[i]:=a[j];a[j]:=t;end;

为了帮助小 Z 更好的理解插入排序,小 Z 的老师 H 老师留下了这么一道家庭作业:

H 老师给了一个长度为 n n n 的数组 a a a,数组下标从 1 1 1 开始,并且数组中的所有元素均为非负整数。小 Z 需要支持在数组 a a a 上的 Q Q Q 次操作,操作共两种,参数分别如下:

1 x v 1~x~v 1 x v:这是第一种操作,会将 a a a 的第 x x x 个元素,也就是 a x a_x ax 的值,修改为 v v v。保证 1 ≤ x ≤ n 1 \le x \le n 1xn 1 ≤ v ≤ 1 0 9 1 \le v \le 10^9 1v109注意这种操作会改变数组的元素,修改得到的数组会被保留,也会影响后续的操作

2 x 2~x 2 x:这是第二种操作,假设 H 老师按照上面的伪代码 a a a 数组进行排序,你需要告诉 H 老师原来 a a a 的第 x x x 个元素,也就是 a x a_x ax,在排序后的新数组所处的位置。保证 1 ≤ x ≤ n 1 \le x \le n 1xn注意这种操作不会改变数组的元素,排序后的数组不会被保留,也不会影响后续的操作

H 老师不喜欢过多的修改,所以他保证类型 1 1 1 的操作次数不超过 5000 5000 5000

小 Z 没有学过计算机竞赛,因此小 Z 并不会做这道题。他找到了你来帮助他解决这个问题。

输入格式

第一行,包含两个正整数 n , Q n, Q n,Q,表示数组长度和操作次数。

第二行,包含 n n n 个空格分隔的非负整数,其中第 i i i 个非负整数表示 a i a_i ai

接下来 Q Q Q 行,每行 2 ∼ 3 2 \sim 3 23 个正整数,表示一次操作,操作格式见【题目描述】。

输出格式

对于每一次类型为 2 2 2 的询问,输出一行一个正整数表示答案。

样例 #1

样例输入 #1

3 4
3 2 1
2 3
1 3 2
2 2
2 3

样例输出 #1

1
1
2

提示

【样例解释 #1】

在修改操作之前,假设 H 老师进行了一次插入排序,则原序列的三个元素在排序结束后所处的位置分别是 3 , 2 , 1 3, 2, 1 3,2,1

在修改操作之后,假设 H 老师进行了一次插入排序,则原序列的三个元素在排序结束后所处的位置分别是 3 , 1 , 2 3, 1, 2 3,1,2

注意虽然此时 a 2 = a 3 a_2 = a_3 a2=a3,但是我们不能将其视为相同的元素

【样例 #2】

见附件中的 sort/sort2.insort/sort2.ans

该测试点数据范围同测试点 1 ∼ 2 1 \sim 2 12

【样例 #3】

见附件中的 sort/sort3.insort/sort3.ans

该测试点数据范围同测试点 3 ∼ 7 3 \sim 7 37

【样例 #4】

见附件中的 sort/sort4.insort/sort4.ans

该测试点数据范围同测试点 12 ∼ 14 12 \sim 14 1214

【数据范围】

对于所有测试数据,满足 1 ≤ n ≤ 8000 1 \le n \le 8000 1n8000 1 ≤ Q ≤ 2 × 10 5 1 \le Q \le 2 \times {10}^5 1Q2×105 1 ≤ x ≤ n 1 \le x \le n 1xn 1 ≤ v , a i ≤ 1 0 9 1 \le v,a_i \le 10^9 1v,ai109

对于所有测试数据,保证在所有 Q Q Q 次操作中,至多有 5000 5000 5000 次操作属于类型一。

各测试点的附加限制及分值如下表所示。

测试点 n ≤ n \le n Q ≤ Q \le Q特殊性质
1 ∼ 4 1 \sim 4 14 10 10 10 10 10 10
5 ∼ 9 5 \sim 9 59 300 300 300 300 300 300
10 ∼ 13 10 \sim 13 1013 1500 1500 1500 1500 1500 1500
14 ∼ 16 14 \sim 16 1416 8000 8000 8000 8000 8000 8000保证所有输入的 a i , v a_i,v ai,v 互不相同
17 ∼ 19 17 \sim 19 1719 8000 8000 8000 8000 8000 8000
20 ∼ 22 20 \sim 22 2022 8000 8000 8000 2 × 1 0 5 2 \times 10^5 2×105保证所有输入的 a i , v a_i,v ai,v 互不相同
23 ∼ 25 23 \sim 25 2325 8000 8000 8000 2 × 1 0 5 2 \times 10^5 2×105

答案1

#include <bits/stdc++.h>
//#include<cstdio>//必须包含cstdio头文件
//#include<iostream>
using namespace std;struct node
{int id,num;}a[8010];
int n,q;bool cmp(node a,node b)
{if(a.num == b.num){return a.id<b.id;}else{return a.num<b.num;}
}int main(){//freopen("candy.in","r",stdin);//freopen("candy.out","w",stdout);scanf("%d%d",&n,&q);for(int i=1;i<=n;i++){scanf("%d",&a[i].num);a[i].id = i;}sort(a+1,a+1+n,cmp);
//    cout<<"*****"<<endl;
//    for(int i=1;i<=n;i++)
//    {
//        cout<<a[i].id<<" "<<a[i].num<<endl;
//    }int op,u,v;while(q--){scanf("%d",&op);if(op == 1){//修改scanf("%d%d",&u,&v);//找到值,进行修改,排序for(int i=1;i<=n;i++){if(a[i].id==u){a[i].num = v;break;}}sort(a+1,a+1+n,cmp);}else{//查找scanf("%d",&u);for(int i=1;i<=n;i++){if(a[i].id==u){printf("%d\n",i);break;}}}}//    system("pause");//fclose(stdin);//fclose(stdout);return 0;
}

在这里插入图片描述

#include<bits/stdc++.h>using namespace std;// 一个元素结构体 321
struct node{int id;//原有的顺序int num;//初始值
}a[8010];bool cmp(node a,node b){if(a.num == b.num){return a.id<b.id;}else{return a.num<b.num;}}
int n,q;
int temp;
int main(){//freopen("candy.in","r",stdin);//freopen("candy.out","w",stdout);cin>>n>>q;// 初始化数组完成for(int i=1;i<=n;i++){cin>>a[i].num;a[i].id=i;}sort(a+1,a+1+n,cmp);// 因为结构体已经有原有的id了,所以可以直接排序int op,x,v;//op表示操作1 2 x表示原有数组中的位置 v表示替换的值while(q--){cin>>op;if(op == 1){cin>>x>>v;// 把原有的x替换为vfor(int i=1;i<=n;i++){if(a[i].id==x){// a[i].id 为原来的顺序a[i].num=v;}}sort(a+1,a+1+n,cmp);}else{cin>>x;// 根据x x为原有 数组中的id 求这个id的value再新数组中 的位置for(int i=1;i<=n;i++){if(a[i].id==x){// a[i].id 为原来的顺序cout<<i<<" "<<endl;}}}}return 0;
}

答案2

#include <bits/stdc++.h>
//#include<cstdio>//必须包含cstdio头文件
//#include<iostream>
using namespace std;struct node
{int id,num;}a[8010];
int n,q;
int b[8010];// 用来保存原来的下标和现在的下标
bool cmp(node a,node b)
{if(a.num == b.num){return a.id<b.id;}else{return a.num<b.num;}
}int main(){//freopen("candy.in","r",stdin);//freopen("candy.out","w",stdout);scanf("%d%d",&n,&q);for(int i=1;i<=n;i++){scanf("%d",&a[i].num);a[i].id = i;}sort(a+1,a+1+n,cmp);for(int i=1;i<=n;i++){b[a[i].id] = i;//}//    cout<<"*****"<<endl;
//    for(int i=1;i<=n;i++)
//    {
//        cout<<a[i].id<<" "<<a[i].num<<endl;
//    }int op,u,v;while(q--){scanf("%d",&op);if(op == 1){//修改scanf("%d%d",&u,&v);//找到值,进行修改,排序
//            for(int i=1;i<=n;i++){
//                if(a[i].id==u){
//                    a[i].num = v;
//                    break;
//                }
//            }a[b[u]].num=v;sort(a+1,a+1+n,cmp);// 新增for(int i=1;i<=n;i++){b[a[i].id]=i;}}else{//查找scanf("%d",&u);
//            for(int i=1;i<=n;i++){
//                if(a[i].id==u){
//                    printf("%d\n",i);
//                    break;
//                }
//
//            }printf("%d\n",b[u]);}}//    system("pause");//fclose(stdin);//fclose(stdout);return 0;
}

在这里插入图片描述

答案3

#include <bits/stdc++.h>
//#include<cstdio>//必须包含cstdio头文件
//#include<iostream>
using namespace std;struct node
{int id,num;}a[8010];
int n,q;
int b[8010];// 用来保存原来的下标和现在的下标
bool cmp(node a,node b)
{if(a.num == b.num){return a.id<b.id;}else{return a.num<b.num;}
}void change(int pos){while(pos > 1){if(a[pos].num>a[pos-1].num) break;if(a[pos].num==a[pos-1].num && a[pos].id>a[pos-1].id) break;swap(a[pos],a[pos-1]);b[a[pos].id]=pos;pos--;}while(pos<n){if(a[pos].num<a[pos+1].num) break;if(a[pos].num==a[pos+1].num && a[pos].id<a[pos+1].id) break;swap(a[pos],a[pos+1]);b[a[pos].id]=pos;pos++;}b[a[pos].id]=pos;}int main(){//freopen("candy.in","r",stdin);//freopen("candy.out","w",stdout);scanf("%d%d",&n,&q);for(int i=1;i<=n;i++){scanf("%d",&a[i].num);a[i].id = i;}sort(a+1,a+1+n,cmp);for(int i=1;i<=n;i++){b[a[i].id] = i;//}//    cout<<"*****"<<endl;
//    for(int i=1;i<=n;i++)
//    {
//        cout<<a[i].id<<" "<<a[i].num<<endl;
//    }int op,u,v;while(q--){scanf("%d",&op);if(op == 1){//修改scanf("%d%d",&u,&v);//找到值,进行修改,排序
//            for(int i=1;i<=n;i++){
//                if(a[i].id==u){
//                    a[i].num = v;
//                    break;
//                }
//            }a[b[u]].num=v;change(b[u]);
//            sort(a+1,a+1+n,cmp);
//            // 新增
//            for(int i=1;i<=n;i++){
//                b[a[i].id]=i;
//            }}else{//查找scanf("%d",&u);
//            for(int i=1;i<=n;i++){
//                if(a[i].id==u){
//                    printf("%d\n",i);
//                    break;
//                }
//
//            }printf("%d\n",b[u]);}}//    system("pause");//fclose(stdin);//fclose(stdout);return 0;
}

在这里插入图片描述

现场真题注意事项

https://cspoj.com/contest.php?cid=1002
Fus5yz4x3EcSJH1Z

注意事项

  1. 文件名(程序名和输入输出文件名)必须使用英文小写。(提交必须使用freopen()进行提交)
  2. C/C++ 中函数 main() 的返回值类型必须是 int,程序正常结束时的返回值必须是0。
  3. 提交的程序代码文件的放置位置请参考各省的具体要求。
  4. 因违反以上三点而出现的错误或问题,申述时一律不予受理。
  5. 若无特殊说明,结果的比较方式为全文比较(过滤行末空格及文末回车)。
  6. 程序可使用的栈空间内存限制与题目的内存限制一致。
  7. 全国统一评测时采用的机器配置为:Inter® Core™ i7-8700K CPU @3.70GHz,内存 32GB。上述时限以此配置为准。
  8. 只提供 Linux 格式附加样例文件。
  9. 评测在当前最新公布的 NOI Linux 下进行,各语言的编译器版本以此为准

/*
假设输入样例数据存在文件test.in中,输出样例数据存在文件test.out中,
则在CSP、NOI等比赛的代码中,需添加freopen、fclose语句,
内容详见模板代码如下。
*/

#include <bits/stdc++.h>
#include<cstdio>//必须包含cstdio头文件
#include<iostream>
using namespace std;int main(){freopen("test.in","r",stdin);freopen("test.out","w",stdout);cout<<"Hello NOI"<<endl;fclose(stdin);fclose(stdout);return 0;
}

下面为函数的简介,详细可参见 http://www.cplusplus.com/reference/clibrary/cstdio/freopen.html
函数名:freopen
声明:FILE *freopen( const char *path, const char *mode, FILE *stream );
所在文件: stdio.h
参数说明:
path: 文件名,用于存储输入输出的自定义文件名。
mode: 文件打开的模式。和fopen中的模式(如r-只读, w-写)相同。
stream: 一个文件,通常使用标准流文件。
返回值:成功,则返回一个path所指定文件的指针;失败,返回NULL。(一般可以不使用它的返回值)
功能:实现重定向,把预定义的标准流文件定向到由path指定的文件中。标准流文件具体是指stdin、stdout和stderr。其中stdin是标准输入流,默认为键盘;stdout是标准输出流,默认为屏幕;stderr是标准错误流,一般把屏幕设为默认。通过调用freopen,就可以修改标准流文件的默认值,实现重定向。

#include<iostream>
#include<cstdio>
using namespace std;
int main(){freopen("7532.in", "r", stdin);freopen("7532.out", "w", stdout);//原来的代码保持不变double a, b, r;int k;cin >> a >> b;k = int(a/b);r = a - b * k;printf("%g", r);//-------------fclose(stdin);fclose(stdout);return 0;
}

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

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

相关文章

为什么字节大量用GO而不是Java?

见字如面&#xff0c;我是军哥。 我看很多程序员对字节编程语言选型很好奇&#xff0c;为此我还特地问了在字节的两位4-1的技术大佬朋友&#xff0c;然后加上自己的思考&#xff0c;总结了一下就以下 2 个原因&#xff1a; 1、 选型上没有历史包袱 字节的早期的程序员大多来自于…

Linux常见操作命令(1)

​ 前言&#xff1a;作者也是初学Linux&#xff0c;可能总结的还不是很到位 ♈️今日夜电波&#xff1a;达尔文—林俊杰 0:30━━━━━━️&#x1f49f;──────── 4:06 &#x1f504; ◀️ …

Interactive-slam imGui slam3dTool防坑手册

问题一、 glfw error 65544: X11: RandR gamma ramp support seems broken error : failed to compile shader /home/ros_proj/catkin_ws/src/interactive_slam/data/shader/rainbow.vert 0:1(10): error: GLSL 3.30 is not supported. Supported versions are: 1.10, 1.20, 1…

快看看你的手机有没有:谷歌Android全面封杀此类软件!

谷歌坐不住了&#xff0c;因为Android应用商店中&#xff0c;充斥着大量可窃取用户数据的应用&#xff0c;所以必然要出手整治了。 一款名叫“SonicSpy”软件是整个事情的导火索&#xff0c;而该应用是典型的窃取用户数据的应用&#xff0c;其除了可以从手机中提取个人数据外&…

cesium gltf控制

gltf格式详解 glTF格式本质上是一个JSON文件。这一文件描述了整个3D场景的内容。它包含了对场景结构进行描述的场景图。场景中的3D对象通过场景结点引用网格进行定义。材质定义了3D对象的外观,动画定义了3D对象的变换操作(比如选择、平移操作)。蒙皮定义了3D对象如何进行骨骼…

使用华为eNSP组网试验⑵-通过端口地址进行静态路由

有了网络模拟器可以对很多网络应用场景进行模拟&#xff0c;既方便学习又有利于实际的网络实施。 之前因为没有用过&#xff0c;用过了才知道eNSP的好处。但是与思科模拟器不同&#xff0c;连接是自动连接&#xff0c;不能确定端口&#xff0c;比如使用指定的光纤端口或者RJ45的…

【Redis】redis基本数据类型详解(String、List、Hash、Set、ZSet)

目录 RedisString(字符串)List(列表)Hash(字典)Set(集合)ZSet(有序集合) Redis Redis有5种基本的数据结构&#xff0c;分别为&#xff1a;string&#xff08;字符串&#xff09;、list&#xff08;列表&#xff09;、set&#xff08;集合&#xff09;、hash&#xff08;哈希&a…

Fiddler抓取手机https包的步骤

做接口测试时&#xff0c;有时我们需要使用fiddler进行抓包分析&#xff0c;那么如何抓取https包。主要分为以下七步&#xff1a; 1.设置fiddler选项&#xff1a;Tools->Options,按如下图勾选 2.下载并安装Fiddler证书生成器 下载地址&#xff1a;http://www.telerik.com/…

python使用mitmproxy和mitmdump抓包在电脑上抓包(二)

在我的上篇文章中&#xff0c;主要记录如何安装mitmproxy和抓取https流量。参考链接&#xff1a; python使用mitmproxy和mitmdump抓包在电脑上抓包-CSDN博客 本篇主要使用python配合mitmdump来抓包和处理返回包&#xff0c;更加灵活&#xff0c;这也是mitmproxy(mitmdump)的最…

熔断、限流、降级 —— SpringCloud Alibaba Sentinel

Sentinel 简介 Sentinel 是阿里中间件团队开源的&#xff0c;面向分布式服务架构的高可用流量防护组件&#xff0c;主要以流量为切入点&#xff0c;从限流、流量整形、熔断降级、系统负载保护、热点防护等多个维度来帮助开发者保障微服务的稳定性 Sentinel 提供了两个服务组件…

opencv实现目标跟踪及视频转存

创建跟踪器 def createTypeTracker(trackerType): 读取视频第一帧&#xff0c;选择跟踪的目标 读第一帧。 ok, frame video.read() 选择边界框 bbox cv2.selectROI(frame, False) 初始化跟踪器 tracker_type ‘MIL’ tracker createTypeTracker(tracker_type) 用第一…

手机电脑数码小程序商城的作用是什么

手机几乎是每个成年人人手一个以上&#xff0c;市场非常大&#xff0c;加之产品更新迭代速度快&#xff0c;每年都会推出多个型号、造型等&#xff0c;因此对高收入群体或爱机人群来说&#xff0c;新手机往往一年或二年时间就会换&#xff0c;或者直接购买当备用机等。 每个城…

Acwing 143. 最大异或对

Acwing 143. 最大异或对 题目描述思路讲解代码展示 题目描述 思路讲解 这道题的启示是&#xff1a;字典树不单单可以高效存储和查找字符串集合,还可以存储二进制数字 思路:将每个数以二进制方式存入字典树,找的时候从最高位去找有无该位的异. 代码展示 #include<iostream…

华为云云耀云服务器L实例评测 | 实例场景体验之搭建个人博客:通过华为云云耀云服务器构建个人博客

华为云云耀云服务器L实例评测 &#xff5c; 实例场景体验之搭建个人博客&#xff1a;通过华为云云耀云服务器构建个人博客 介绍华为云云耀云服务器 华为云云耀云服务器 &#xff08;目前已经全新升级为 华为云云耀云服务器L实例&#xff09; 华为云云耀云服务器是什么华为云云耀…

【调度算法】进程调度算法、内存页面置换算法、LRU算法、LFU算法、磁盘调度算法等重点知识汇总

目录 进程调度算法 内存页面置换算法 LRU算法实现 LFU算法实现 磁盘调度算法 进程调度算法 当 CPU 空闲时&#xff0c;操作系统就选择内存中的某个「就绪状态」的进程&#xff0c;并给其分配 CPU。 什么时候会发生 CPU 调度呢&#xff1f;通常有以下情况&#xff1a; 当…

CSS详细基础(五)选择器的优先级

本节介绍选择器优先级&#xff0c;优先级决定了元素最终展示的样式~ 浏览器是通过判断CSS优先级&#xff0c;来决定到底哪些属性值是与元素最为相关的&#xff0c;从而作用到该元素上。CSS选择器的合理组成规则决定了优先级&#xff0c;我们也常常用选择器优先级来合理控制元素…

Leetcode---364场周赛

题目列表 2864. 最大二进制奇数 2865. 美丽塔 I 2866. 美丽塔 II 2867. 统计树中的合法路径数目 一、最大二进制奇数 这题只要你对二进制有了解(学编程的不会不了解二进制吧)&#xff0c;应该问题不大&#xff0c;这题要求最大奇数&#xff0c;1.奇数&#xff1a;只要保证…

【Java 进阶篇】MySQL 事务详解

在数据库管理中&#xff0c;事务是一组SQL语句的执行单元&#xff0c;它们被视为一个整体。事务的主要目标是保持数据库的一致性和完整性&#xff0c;即要么所有SQL语句都成功执行&#xff0c;要么所有SQL语句都不执行。在MySQL中&#xff0c;事务起到了非常重要的作用&#xf…

蜂蜜配送销售商城小程序的作用是什么

蜂蜜是农产品中重要的一个类目&#xff0c;其受众之广市场需求量大&#xff0c;但由于非人人必需品&#xff0c;因此传统线下门店经营也面临着痛点&#xff0c;线上入驻平台也有很多限制难以打造自有品牌&#xff0c;无法管理销售商品及会员、营销等&#xff0c;缺少自营渠道&a…

编写Android.mk / Android.bp 引用三方 jar 包,aar包,so 库

一.前言 在Android10之后&#xff0c;所有项目工程中&#xff0c;官方推荐使用Android.bp去编译构建&#xff0c;以前使用Android.mk构建的项目随着版本迭代升级&#xff0c;慢慢需要变更为Android.bp&#xff0c; 两者的语法都需要去了解并熟练使用。 笔者之前写过Android.mk的…