蓝桥杯刷题周计划(第四周)
目录
- 前言
- 题目一
- 题目
- 代码
- 题解分析
- 题目二
- 题目
- 代码
- 题解分析
- 题目三
- 题目
- 代码
- 题解分析
- 题目四
- 题目
- 代码
- 题解分析
- 题目五
- 题目
- 代码
- 题解分析
- 题目六
- 题目
- 代码
- 题解分析
- 题目七
- 题目
- 代码
- 题解分析
- 题目八
- 题目
- 代码
- 题解分析
- 题目九
- 题目
- 代码
- 题解分析
- 题目十
- 题目
- 代码
- 题解分析
- 题目
- 代码
- 题解分析
- 题目十一
- 题目
- 代码
- 题解分析
- 题目十二
- 题目
- 代码
- 题解分析
- 题目十三
- 题目
- 代码
- 题解分析
- 题目一
- 题目
- 代码
- 题解分析
- 题目二
- 题目
- 代码
- 题解分析
- 题目三
- 题目
- 代码
- 题解分析
前言
大家好!我是 EnigmaCoder。
- 本文是我蓝桥杯刷题计划的第四周。附:蓝桥杯刷题周计划(第三周)
- 本文含有16题,每道题分为题目、代码、题解分析三部分,且附有原题链接。
- 希望能帮助到大家!
题目一
原题链接:lanqiao19723
题目
问题描述
小蓝最近学习了一种神奇的队列: 分布式队列。简单来说,分布式队列包含 N 个节点(编号为 0 至 N−1,其中 0 号为主节点),其中只有一个主节点,其余为副节点。主/副节点中都各自维护着一个队列,当往分布式队列中添加元素时,都是由主节点完成的(每次都会添加元素到主节点对应的队列的尾部);副节点只负责同步主节点中的队列。可以认为主/副节点中的队列是一个长度无限的一维数组,下标为0,1,2,3…,同时副节点中的元素的同步顺序和主节点中的元素添加顺序保持一致。由于副本的同步速度各异,因此为了保障数据的一致性,元素添加到主节点后,需要同步到所有的副节点后,才具有可见性。给出一个分布式队列的运行状态,所有的操作都按输入顺序执行。你需要回答在某个时刻,队列中有多少个元素具有可见性。
输入格式
第一行包含一个整数 N,表示节点个数。接下来包含多行输入,每一行包含一个操作,操作类型共有以下三种: add、sync 和 query,各自的输入格式如下
addelement
: 表示这是一个添加操作,将元素 element 添加到队列中;syncfollower id
: 表示这是一个同步操作,follower id 号副节点会从主节点中同步下一个自己缺失的元素;query: 查询操作,询问当前分布式队列中有多少个元素具有可见性。输出格式
对于每一个 query 操作,输出一行,包含一个整数表示答案。样例输入
3
add 1
add 2
query
add 1
sync 1
sync 1
sync 2
query
sync 1
query
sync 2
sync 2
sync 1
query样例输出
0
1
1
3
代码
#include <bits/stdc++.h>
using namespace std;
const int N=15;
int a[N];int main()
{int n;cin>>n;string s;while(cin>>s){if(s=="add"){int t;cin>>t;a[0]++;}else if(s=="sync"){int t;cin>>t;a[t]=min(a[t]+1,a[0]);}else{cout<< *min_element(a+1,a+n)<<endl;}}return 0;
}
题解分析
- 数组
a
:a[0]
记录主节点添加的总元素数,a[1..n-1]
记录各副节点已同步的元素数。 add
操作:增加主节点的元素计数。sync
操作:更新对应副节点的同步进度,确保不超过主节点的当前总数。query
操作:计算所有副节点同步进度的最小值,即为可见元素的数量。
题目二
原题链接:lanqiao2271
题目
问题描述
小蓝每周六、周日都晨跑,每月的 1、11、21、31日也晨跑。其它时间不晨跑。已知 2022 年 1 月 1 日是周六,请问小蓝整个 2022 年晨跑多少天?
代码
#include <iostream>
using namespace std;
int month[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};bool is_leap(int y){if(y%4==0&&y%100!=0||y%400==0)return true;return false;
}
int main()
{int ans=0,day=0;if(is_leap(2022))month[2]=29;for(int m=1;m<=12;m++){day+=month[m-1];for(int d=1;d<=month[m];d++){if((day+d)%7==1||(day+d)%7==2||d==1||d==11||d==21||d==31)ans++;}}cout<<ans;return 0;
}
题解分析
本题是日期模拟题。
题目三
原题链接:lanqiao1135
题目
问题描述
蓝桥幼儿园的学生是如此的天真无邪,以至于对他们来说,朋友的朋友就是自己的朋友。
小明是蓝桥幼儿园的老师,这天他决定为学生们举办一个交友活动,活动规则如下:
小明会用红绳连接两名学生,被连中的两个学生将成为朋友。
小明想让所有学生都互相成为朋友,但是蓝桥幼儿园的学生实在太多了,他无法用肉眼判断某两个学生是否为朋友。于是他起来了作为编程大师的你,请你帮忙写程序判断某两个学生是否为朋友(默认自己和自己也是朋友)。
输入描述
第 11 行包含两个正整数 N,M,其中 NN 表示蓝桥幼儿园的学生数量,学生的编号分别为 1∼N。
之后的第 2∼M+1 行每行输入三个整数,op,x,y:
- 如果 op=1,表示小明用红绳连接了学生 xx 和学生 y 。
- 如果 op=2,请你回答小明学生 x和 学生 y是否为朋友。
1≤N,M≤2×105,1≤x,y≤N。
输出描述
对于每个 op=2的输入,如果 x和 y是朋友,则输出一行
YES
,否则输出一行NO
。输入输出样例
示例 1
输入
5 5 2 1 2 1 1 3 2 1 3 1 2 3 2 1 2
输出
NO YES YES
代码
#include <bits/stdc++.h>
using namespace std;
const int N=2e5+10;
int a[N];
int root(int x){return a[x]=(a[x]==x?x:root(a[x]));
}
int main()
{int n,m;cin>>n>>m;for(int i=1;i<=n;i++)a[i]=i;while(m--){int op,x,y;cin>>op>>x>>y;if(op==1){a[root(x)]=root(y);}else{cout<<(root(x)==root(y)?"YES":"NO")<<endl;}}return 0;
}
题解分析
本题考察并查集。
-
初始化:数组
a
表示每个节点的父节点,初始时每个节点的父节点指向自己(a[i] = i
)。 -
合并操作(op=1):将节点
x
和y
所在的集合合并。通过找到它们的根节点,将其中一个根节点的父节点指向另一个根节点,实现集合的合并。 -
查询操作(op=2):检查节点
x
和y
是否属于同一集合,即它们的根节点是否相同。
题目四
原题链接:lanqiao6267
题目
问题描述
有的数转换为二进制之后,正好有3 个数位为 1 。例如 7 转换为二进制为 111,有 3 个数位为 1 ;又如 11 转换为二进制为 1011,有 3 个数位为 1。满足条件的前几个数依次为:7, 11, 13, 14, 19, 21, ……请问,第 23 个满足条件的数是多少?答案提交
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
代码
#include <iostream>
using namespace std;
int main()
{int num=0,i;for(i=1;i<=100000;i++){int t=i,w=0;while(t){if(t&1)w++;t>>=1;}if(w==3)num++;if(num==23)break;}cout<<i;return 0;
}
题解分析
本题是位运算题。
t&1
可以判断低位是否为1。t>>=1
表示t的二进制位向右移1位。
题目五
原题链接:lanqiao12468
题目
问题描述
小蓝刚学习完二进制知识,所以现在他对任何数字的二进制都特别感兴趣。恰好即将迎来
2024 年,他想知道 2024 的二进制中有几个 1?请你帮忙解决这个问题
输入格式
本题为填空题,无输入。输出格式
输出一个整数表示答案。
代码
#include <iostream>
using namespace std;
int main()
{int t=2024;int ans=0;while(t){if(t&1)ans++;t>>=1;}cout<<ans;return 0;
}
题解分析
本题同样为位运算题。
题目六
原题链接:lanqiao18165
题目
代码
#include <iostream>
using namespace std;
using ll=long long;ll fun(ll x){if(x<=10)return ((x%998244353)*((x-1)%998244353))%998244353;else return ((2*x)%998244353*(fun(x-6)%998244353))%998244353;
}
int main()
{ll x;cin>>x;cout<<fun(x);return 0;
}
题解分析
本题为递归和模运算的结合。
- 按题递归即可。
- 使用乘法模运算规则。
题目七
原题链接:lanqiao2122
题目
问题描述
小蓝对一个数的数位之和很感兴趣, 今天他要按照数位之和给数排序。当 两个数各个数位之和不同时, 将数位和较小的排在前面, 当数位之和相等时, 将数值小的排在前面。例如, 2022 排在 409 前面, 因为 2022 的数位之和是 6, 小于 409 的数位 之和 13 。
又如, 6 排在 2022 前面, 因为它们的数位之和相同, 而 6 小于 2022 。
给定正整数 n,m, 请问对 1 到 n 采用这种方法排序时, 排在第 m 个的元 素是多少?
输入格式
输入第一行包含一个正整数 n 。第二行包含一个正整数 m 。
输出格式
输出一行包含一个整数, 表示答案。样例输入
13
5
样例输出
3
样例说明1 到 13 的排序为: 1,102,11,3,12,4,13,5,6,7,8,9 。第 5 个数为 3 。
代码
#include <bits/stdc++.h>
using namespace std;
const int N=1e6+10;
int a[N];int num(int x){int sum=0;while(x){sum+=x%10;x/=10;}return sum;}bool compare(int a,int b){int x1=num(a);int x2=num(b);if(x1==x2)return a<b;else return x1<x2;}int main()
{int n,m;cin>>n>>m;for(int i=1;i<=n;i++)a[i]=i;sort(a+1,a+1+n,compare);cout<<a[m];return 0;
}
题解分析
本题是自定义排序题。
num
函数来计算数位之和。compare
函数根据题意制定排序规则。
题目八
原题链接:lanqiao19733
题目
问题描述
在蓝桥王国,数字的大小不仅仅取决于它们的数值大小,还取决于它们所形成的“封闭图形”的个数。
封闭图形是指数字中完全封闭的空间,例如数字 1、2、3、5、7 都没有形成封闭图形,而数字 0、4、6、9 分别形成了 1个封闭图形,数字 8则形成了 2个封闭图形。值得注意的是,封闭图形的个数是可以累加的。例如,对于数字 68,由于 6 形成了 1 个封闭图形,而 8 形成了 2个,所以 68 形成的封闭图形的个数总共为 3。
在比较两个数的大小时,如果它们的封闭图形个数不同,那么封闭图形个数较多的数更大。例如,数字 4141 和数字 1818,它们对应的封闭图形的个数分别为 1 和 2,因此数字 41 小于数字 18。如果两个数的封闭图形个数相同,那么数值较大的数更大。例如,数字 14和数字 41,它们的封闭图形的个数都是 11,但 14<41,所以数字 14小于数字 41。 如果两个数字的封闭图形个数和数值都相同,那么这两个数字被认为是相等的。
小蓝对蓝桥王国的数字大小规则十分感兴趣。现在,他将给定你 n个数 a1,a2,…,an,请你按照蓝桥王国的数字大小规则,将这 nn 数从小到大排序,并输出排序后结果。
输入格式
第一行包含一个整数 n,表示给定的数字个数。
第二行包含 n个整数 a1,a2,…,an,表示待排序的数字。
输出格式
输出一行,包含 n个整数,表示按照蓝桥王国的数字大小规则从小到大排序后的结果,每两个数字之间用一个空格分隔。
样例输入
3 18 29 6
样例输出
6 29 18
样例说明
对于给定的数字序列
[18,29,6]
,数字 18的封闭图形个数为 2,数字 29 的封闭图形个数为 1,数字 6 的封闭图形个数为 1。按照封闭图形个数从小到大排序后,得到[29,6,18]
。由于数字 2929 和数字 66 的封闭图形个数相同,因此需要进一步按照数值大小对它们进行排序,最终得到
[6,29,18]
。
代码
#include <bits/stdc++.h>
using namespace std;
const int N=2e5+10;
using ll=long long;
ll a[N];ll num(ll x){ll sum=0;while(x){if(x%10==8)sum+=2;else if(x%10==0||x%10==4||x%10==6||x%10==9)sum+=1;x/=10;}return sum;
}bool compare(ll x,ll y){ll sum1=num(x),sum2=num(y);if(sum1==sum2)return x<y;else return sum1<sum2;
}int main()
{int n;cin>>n;for(int i=1;i<=n;i++)cin>>a[i];sort(a+1,a+n+1,compare);for(int i=1;i<=n;i++)cout<<a[i]<<' ';return 0;
}
题解分析
本题仍然为自定义排序题。
题目九
原题链接:lanqiao1264
题目
题目描述
给定一个长度为 n的数组 a 。
给定一个长度为 mm 的互不相同的数组 p , 意味着你可以交换 a[pi]和 a[pi+1]任意次。
请确定是否可以用仅允许的交换方式使得 aa 数组非严格递减。
输入描述
第一行输入一个 n和 m。
第二行输入 n个整数 a1,a2,…,an 。
第三行输入 m个整数 p1,p2,p3,…,pm
1≤m<n≤103,1≤ai≤n,1≤pi<n
输出描述
如果可以输出
YES
,否则输出NO
。输入输出样例
示例 1
输入
3 2 3 2 1 1 2
输出
YES
代码
#include <bits/stdc++.h>
using namespace std;
const int N=1e3+10;
int a[N],p[N];int main()
{int n,m;cin>>n>>m;for(int i=1;i<=n;i++)cin>>a[i];while(m--){int x;cin>>x;p[x]=p[x+1]=1;}for(int i=1;i<n;i++){for(int j=1;j<n-i;j++){if(p[j]==1&&p[j+1]==1){if(a[j]>=a[j+1])swap(a[j],a[j+1]);}else {cout<<"NO";return 0;}}}cout<<"YES";return 0;
}
题解分析
本题为冒泡排序的变式题。
题目十
原题链接:lanqiao1514
题目
题目描述
输入 b,p,k 的值,求 bpmod k 的值。其中 2≤b,p,k≤109 。
输入描述
三个整数 b,p,kb,p,k。
输出描述
输出 bpmod k=s,s 为运算结果。
输入输出样例
示例
输入
2 10 9
输出
7
代码
#include <bits/stdc++.h>
using namespace std;
using ll=long long;
ll qmi(ll a,ll b,ll p){ll res=1;while(b){if(b&1)res=res*a%p;a=a*a%p,b>>=1;}return res;
}
int main()
{ll b,p,k;cin>>b>>p>>k;cout<<qmi(b,p,k);return 0;
}
题解分析
本题为快速幂的模版题,注意两次取模。
2&tag_relation=union)
题目
题目描述
输入 b,p,k 的值,求 bpmod k 的值。其中 2≤b,p,k≤109 。
输入描述
三个整数 b,p,kb,p,k。
输出描述
输出 bpmod k=s,s 为运算结果。
输入输出样例
示例
输入
2 10 9
输出
7
代码
#include <bits/stdc++.h>
using namespace std;
using ll=long long;
ll qmi(ll a,ll b,ll p){ll res=1;while(b){if(b&1)res=res*a%p;a=a*a%p,b>>=1;}return res;
}
int main()
{ll b,p,k;cin>>b>>p>>k;cout<<qmi(b,p,k);return 0;
}
题解分析
本题为快速幂的模版题,注意两次取模。
题目十一
原题链接:lanqiao18440
题目
问题描述
给定一个 n×m 大小的矩阵 A。给定 q 组操作,每次操作为给定 5 个正整数 x,1,x2,y2,x 1 ,y 1 ,x ,y 2,d,Ax1,y1A x 1 ,y 1 是子矩阵左上角端点,Ax2,y2A x ,y 2是子矩阵右下角端点,你需要给其中每个元素都增加 d。输出操作结束后的矩阵 A。
输入格式
第一行输入 3 个正整数 n,m q。(1≤n,m≤103,1≤q≤105 )
接下来 n 行每行输入 m 个整数,表示 Ai,j A ,j 。(−103≤i,j≤13,1≤i≤n,1≤j≤m)
接下来 q 行,每行输入 5 个正整数 x1,y1,x2,y2,dx 1 。(1≤x1≤x2≤n,1≤y1≤y2≤m,−103≤d≤103)
输出
输出 n 行 m 个整数,表示操作结束后的矩阵 A。样例输入
3 4 3
1 2 2 1
3 2 2 1
1 1 1 1
1 1 2 2 1
1 3 2 3 2
3 1 3 4 1
样例输出
2 3 4 1
4 3 4 1
2 2 2 2
代码
#include<bits/stdc++.h>
using namespace std;
const int N=1010;
int a[N][N];
int b[N][N];
int main()
{int n,m,q;cin>>n>>m>>q;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){cin>>a[i][j];b[i][j]=a[i][j]-a[i][j-1]-a[i-1][j]+a[i-1][j-1];}}while(q--){int x1,x2,y1,y2,d;cin>>x1>>y1>>x2>>y2>>d;b[x1][y1]+=d;b[x1][y2+1]-=d;b[x2+1][y1]-=d;b[x2+1][y2+1]+=d;}for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){a[i][j]=b[i][j]+a[i][j-1]+a[i-1][j]-a[i-1][j-1];cout<<a[i][j]<<" ";}cout<<endl;} return 0;
}
题解分析
本题是二维差分的模板题,使用模板解题即可。
题目十二
原题链接:lanqiao4169
题目
问题描述
鸡哥在“无尽的夏日”购物节上看中了一系列的商品,这些商品的价格各不相同。然而,鸡哥的购物车有一条特殊的规则:购物车中的商品数量必须是偶数个。
鸡哥希望在满足购物车规则的前提下,选择总价值最高的商品。他将商品的价格列表给了你,希望你能帮他计算出他能购买到的商品的最高总价值是多少。
输入格式
第一行包含一个整数 N(2≤N≤105),表示商品的数量。
第二行包含 N个整数,表示每个商品的价格 Ai(−109≤Ai≤109)。
输出格式
输出一行,表示鸡哥能购买到的商品的最高总价值。
样例输入
5 1 2 3 4 5
样例输出
14
代码
#include <bits/stdc++.h>
using namespace std;
const int N=1e5+10;
using ll=long long;
ll a[N];
int main()
{ll n;cin>>n; ll sum=0,count=0;for(int i=1;i<=n;i++){cin>>a[i];if(a[i]>=0){sum+=a[i];count++;}}sort(a+1,a+1+n,greater<ll>());if(count%2==0){cout<<sum;}else if(count==0){cout<<a[1]+a[2];}else{cout<<max(sum-a[count],sum+a[count+1]);}return 0;
}
题解分析
本题是一道贪心题。
- 首先进行降序排序,正数商品个数为偶数就全买。
- 如果是奇数个,就在舍弃正数最小值和加上负数最大值间,取两者的最大值。
- 如果没有非负数,则取最大的两个负数。
题目十三
原题链接:lanqiao19695
题目
问题描述
小蓝组织了一场算法交流会议,总共有 50 人参加了本次会议。在会议上,大家进行了握手交流。按照惯例他们每个人都要与除自己以外的其他所有人进行一次握手 (且仅有一次)。但有 7 个人,这 7 人彼此之间没有进行握手 (但这 7 人与除这 7 人以外的所有人进行了握手)。请问这些人之间一共进行了多少次握手?注意 A 和 B 握手的同时也意味着 B 和 A 握手了,所以算作是一次握手。
答案提交
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
代码
#include <iostream>
using namespace std;
int main()
{int sum=0;for(int i=49;i>=7;i--)sum+=i;cout<<sum;return 0;
}
题解分析
由题意可知,每个人都要与除自己以外的其他所有人进行一次握手 ,所以第50名的人握手49次,49名握手48次……第8名握手7次,将他们累加即可。
题目一
原题链接:lanqiao19709
题目
问题描述
一个整数如果按从低位到高位的顺序,奇数位 (个位、百位、万位 ⋯ ) 上的数字是奇数,偶数位 (十位、千位、十万位 ⋯ ) 上的数字是偶数,我们就称之为 “好数”。给定一个正整数 N,请计算从 1 到 N 一共有多少个好数。
输入格式
一个整数 N。输出格式
一个整数代表答案。样例输入1
24
样例输出 1
7
样例输入 2
2024
样例输出 2
150
样例说明
对于第一个样例,24 以内的好数有 1、3、5、7、9、21、23,一共 7 个。
代码
#include <iostream>
using namespace std;
const int N=10;
int a[N];int main()
{int n,sum=0;cin>>n;for(int i=1;i<=n;i++){int t=i,k=1;while(t){int e=t%10;a[k++]=e;t/=10;}int j;for(j=1;j<k;j++){if((j%2==1&&a[j]%2!=1)||(j%2==0&&a[j]%2!=0))break;}if(j==k)sum++;}cout<<sum;return 0;
}
题解分析
本题暴力解题即可。
题目二
原题链接:lanqiao673
题目
题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。有些人很迷信数字,比如带 “4”
的数字,认为和“死”谐音,就觉得不吉利。 虽然这些说法纯属无稽之谈,但有时还要迎合大众的需求。某抽奖活动的奖券号码是 5 位数(10000−99999),要求其中不要出现带 “4” 的号码。主办单位请你计算一下,如果任何两张奖券不重号,最多可发出奖券多少张。
代码
#include <iostream>
using namespace std;
int main()
{int sum=99999-10000;for(int i=10000;i<=99999;i++){int t=i;while(t){if(t%10==4){sum--;break;}t/=10;}}cout<<sum+1;return 0;
}
题解分析
本题仍然使用暴力解题。
题目三
原题链接:lanqiao4050
题目
问题描述
在烬寂海中居住着某种智慧生物。它们的文明发展程度相当于地球上的中世纪,但是它们拥有强大的科技与魔法。一天,王国的法师得到了一段古老的魔法咒文,咒文中似乎隐藏着巨大的能量,但是咒文中有很多相似的字符串片段,法师们相信这些片段与魔法的启动有关。
现在,国王决定招募聪明的你,使用你的技术能力来帮助法师们解开这个谜团。
现在给你一个字符串S(主串),还有若干个模式串 P。你需要统计每一个模式串在主串中出现的次数。
输入格式
第一行:一个字符串 S,表示主串,只包含小写英文字母。第二行:一个整数 n,表示有 n 个模式串。
接下来的 n 行:每行一个字符串,代表一个模式串 P,只包含小写英文字母。
输出格式
n 行,每行一个整数,表示对应模式串在主串中出现的次数。
代码
#include <bits/stdc++.h>
using namespace std;
const int N=1e5+10;
const int M=1010;
char s[N],p[M];
int nex[M];int KMP(int n,int m){int sum=0;for(int i=2,j=0;i<=m;i++){while(j&&p[i]!=p[j+1])j=nex[j];if(p[i]==p[j+1])j++;nex[i]=j;} for(int i=1,j=0;i<=n;i++){while(j&&s[i]!=p[j+1])j=nex[j];if(s[i]==p[j+1])j++;if(j==m)sum++;}return sum;
}int main()
{cin>>s+1;int k;cin>>k;int n=strlen(s+1);while(k--){cin>>p+1;int m=strlen(p+1);cout<<KMP(n,m)<<endl;}return 0;
}
题解分析
本题使用KMP模板解题。
相关文章:
蓝桥杯刷题周计划(第四周)
目录 前言题目一题目代码题解分析 题目二题目代码题解分析 题目三题目代码题解分析 题目四题目代码题解分析 题目五题目代码题解分析 题目六题目代码题解分析 题目七题目代码题解分析 题目八题目代码题解分析 题目九题目代码题解分析 题目十题目代码题解分析题目代码题解分析 题…...
华为网路设备学习-17
目录 一、加密算法 二、验证算法 三、IPsec协议 1.IKE协议(密钥交换协议) ①ISAKMP(Internet Security Association and Key Management Protocol)互联网安全关联和密钥管理协议 ②安全关联(SA) ③…...
【动态规划】深入动态规划 非连续子序列问题
文章目录 前言例题一、最长递增子序列二、摆动序列三、最长递增子序列的个数四、最长数对链五、最长定差子序列六、最长的斐波那契子序列的长度七、最长等差数列八、等差数列划分II - 子序列 结语 前言 什么是动态规划中的非连续子序列问题? 动态规划中的非连续子序…...
灵魂拷问,指针为什么是C语言的灵魂?
目录 | 引 言 | 内存操作 | 构造复杂的数据结构 | 底层硬件交互 | 指针的陷阱 | 文 末 | 引 言 指针是C语言的灵魂! 这句话是不是很耳熟?但为什么这么说,你知道吗? 本篇小文就从内存、数据结构、底层硬件交互这三个维度来…...
Node.js自定义中间件
目录 Node.js 自定义中间件详细介绍 1. 目录结构 2. 什么是自定义中间件? 3. 代码实现 1. 自定义日志中间件(记录请求信息) 2. 自定义身份验证中间件(校验用户权限) 3. 自定义请求时间中间件(记录请…...
Qt 音乐播放器项目
具体代码见:https://gitee.com/Suinnnnnn/MusicPlayer 文章目录 0. 预备1. 界面1.1 各部位长度1.2 ui文件1.3 窗口前置设置1.4 设置QSS 2. 自定义控件2.1 按钮2.2 推荐页面2.3 CommonPage2.4 滑杆 3. 音乐管理4. 歌词界面4.1 ui文件4.2 LrcPage.h文件 5. 音乐播放控…...
初识数据结构——Java集合框架解析:List与ArrayList的完美结合
📚 Java集合框架解析:List与ArrayList的完美结合 🌟 前言:为什么我们需要List和ArrayList? 在日常开发中,我们经常需要处理一组数据。想象一下,如果你要管理一个班级的学生名单,或…...
LightRAG实战:轻松构建知识图谱,破解传统RAG多跳推理难题
作者:后端小肥肠 🍊 有疑问可私信或评论区联系我。 🥑 创作不易未经允许严禁转载。 姊妹篇: 2025防失业预警:不会用DeepSeek-RAG建知识库的人正在被淘汰_deepseek-embedding-CSDN博客 从PDF到精准答案:Coze…...
Hyperlane框架全面详解与应用指南 [特殊字符][特殊字符][特殊字符]
Hyperlane框架全面详解与应用指南 🚀🚀🚀 📚 前言 欢迎来到Hyperlane框架的全面详解与应用指南!🎉🎉🎉 本文档旨在为开发者提供一个全面、详尽的Hyperlane框架使用指南,…...
使用LVS的 NAT 模式实现 3 台RS的轮询访问
题目 使用LVS的 NAT 模式实现 3 台RS的轮询访问。IP地址和主机自己规划。 -i— turn,-g——DR模式,-m——NAT模式 节点规划 仅主机网段:192.168.216.0/24 NAT网段:192.168.88.0/24 主机角色系统网络ipclientclientredhat9.5仅…...
BGP路由协议之属性4
MED 多出口鉴别器 可选非过渡属性 EBGP 的邻居 Cost 开销值,控制如何进入 AS。越小越优。继承 IGP 的开销值,默认 0 MED(Multi-Exit Discriminator,多出口鉴别器)是可选非过属性,是一种度量值用于向外部对等体指出进入本 AS 的首…...
数据库的操作
1.创建数据库 CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [,create_specification] ...]create_specification: [DEFAULT] CHARACTER SET charset_name [DEFAULT] COLLATE collation_name 大写的表示关键字。[]是可选项。CHARACTER SET:指定…...
【愚公系列】《高效使用DeepSeek》055-可靠性评估与提升
🌟【技术大咖愚公搬代码:全栈专家的成长之路,你关注的宝藏博主在这里!】🌟 📣开发者圈持续输出高质量干货的"愚公精神"践行者——全网百万开发者都在追更的顶级技术博主! 👉 江湖人称"愚公搬代码",用七年如一日的精神深耕技术领域,以"…...
记录clickhouse记录一次性能优化,从60s到1s
文章目录 问题表结构类似如下分析第一步调整第一步观察多磁盘读继续观察sql 问题 一个查询接口,涉及多个clickhouse 查询,查询用时一下变成要60s 表结构类似如下 CREATE TABLE demo.test_local (id UUID,date DateTime,type String ) ENGINE Replic…...
二叉树的层序遍历
102. Binary Tree Level Order Traversal 广度优先搜索 将每个结点的层号记录下。 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* …...
嵌入式硬件篇---TOF陀螺仪SPI液晶屏
文章目录 前言1. TOF传感器(Time of Flight)原理STM32使用方法硬件连接SDASCLVCC\GND 软件配置初始化I2C外设库函数驱动:读取数据 2. 陀螺仪(如MPU6050)原理STM32使用方法硬件连接SDA/SCLINTVCC/GND 软件配置初始化I2C…...
OpenCV 在树莓派上进行实时人脸检测
这段 Python 代码借助 OpenCV 库实现了在树莓派上进行实时人脸检测的功能。它会开启摄像头捕获视频帧,在每一帧里检测人脸并以矩形框标记出来,同时在画面上显示帧率(FPS)。 依赖库 cv2:OpenCV 库,用于计算…...
55.跳跃游戏
题目来源: leetcode题目,网址:55. 跳跃游戏 - 力扣(LeetCode) 解题思路: 遍历数组,若当前节点可达,更新可到达的最远距离,否则返回false。若可遍历整个数组…...
awk 实现listagg ,count 功能
awk命令实现分组统计 测试数据 ABC a1 ABC a2 ABC a3 ABD c1 ABD c2 分组统计 abc a1,a2,a3 3 abd c1,c2 awk 命令 awk {arr[$1]arr[$1] ? arr[$1] "," $2 : $2; count[$1]} END{for (i in arr) print tolower(i), arr[i], count[i]} group_…...
瑞萨RA4M2使用心得-GPIO输出
目录 一、新建项目 二、图形化开发 1.初始化IO 2.界面介绍 3.代码编写 4.所有内部函数的封装位置 5.LED闪烁函数编写 三.debug运行 总结 环境: 开发板:RA-Eco-RA4M2-100PIN-V1.0 IDE:e2 studio 一、新建项目 正常操作,下…...
uniapp微信小程序引入vant组件库
1、首先要有uniapp项目,根据vant官方文档使用yarn或npm安装依赖: 1、 yarn init 或 npm init2、 # 通过 npm 安装npm i vant/weapp -S --production# 通过 yarn 安装yarn add vant/weapp --production# 安装 0.x 版本npm i vant-weapp -S --production …...
COZE通关指南:工作流与插件开发
前言 本文隶属于专栏《AI Agent 通关指南》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见《AI Agent 通关指南》 正文 1. 平台基础介绍 🌟 1.1 COZE平台概述 COZE平台(coze.cn)是一个强大的AI应用开发平台…...
在Unity中,如果物体上的脚本丢失,可以通过编写一个自定义编辑器脚本来查找并删除这些丢失的组件
在Unity中,如果物体上的脚本丢失,可以通过编写一个自定义编辑器脚本来查找并删除这些丢失的组件。以下是一个示例脚本,它可以帮助你一键检索场景中所有丢失脚本的物体,并删除这些丢失的组件。 步骤: 创建编辑器脚本&a…...
青少年编程与数学 02-016 Python数据结构与算法 04课题、栈与队列
青少年编程与数学 02-016 Python数据结构与算法 04课题、栈与队列 一、栈1. 栈的定义2. 栈的特点3. 栈的基本操作示例 4. 栈的实现(1)数组实现(2)链表实现 5. 栈的应用(1)函数调用(2)…...
Lucene.Net全文搜索引擎:架构解析与全流程实战指南
文章目录 引言:为什么选择Lucene.Net?一、Lucene.Net核心架构剖析1.1 模块化设计 二、Lucene.Net索引原理揭秘2.1 倒排索引:搜索的基石2.2 段(Segment)机制 三、全流程实战:从0到1构建搜索引擎3.1 环境准备…...
OpenSceneGraph 中的 LOD详解
LOD (Level of Detail,细节层次) 是3D图形中一种重要的优化技术,OpenSceneGraph 通过 osg::LOD 类提供了完整的LOD支持。 一、LOD 基本概念 1. 什么是LOD 核心思想:根据物体与相机的距离显示不同细节程度的模型 目的:减少远处物…...
程序化广告行业(64/89):AdX/SSP系统广告位设置全解析
程序化广告行业(64/89):AdX/SSP系统广告位设置全解析 大家好!我一直觉得在技术和营销不断融合的当下,程序化广告领域充满了机遇与挑战。之前和大家分享了程序化广告PDB模式的相关知识,今天想接着和大家一起…...
Pytorch中的计算图(Computational Graph)是什么
🧩 一、什么是计算图? 计算图是一种“有向无环图(DAG)”,表示变量(张量)之间的运算关系。 节点:张量或操作(如加法、乘法)边:数据流(即…...
Java 大视界 -- Java 大数据在航天遥测数据分析中的技术突破与应用(177)
💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…...
【Linux操作系统——学习笔记三】Linux环境下多级目录构建与管理的命令行实践报告
1.在用户主目录下,使用以下方法新建目录,并显示详细执行过程: (1)使用绝对路径在当前目录下创建 new_dir目录 (2)使用相对路径、在当前目录创建dir1、dir2、dir3目录 (3)…...
java.util.Collections中常用api
在Java中,java.util.Collections 是一个工具类,提供了大量静态方法用于操作或返回集合(如List、Set、Map等)。以下是常用的API分类整理: 1. 排序与顺序操作 sort(List<T> list) 对List进行自然顺序排序ÿ…...
批量将图片统一色调
from PIL import Image, ImageEnhance # 确保导入 ImageEnhance 模块 import osdef adjust_image_tone(image_path, output_path, r_weight1.0, g_weight1.0, b_weight1.0, brightness1.0):"""调整图片的色调、明暗,并进行去图处理。参数:image_pat…...
OCC Shape 操作
#pragma once #include <iostream> #include <string> #include <filesystem> #include <TopoDS_Shape.hxx> #include <string>class GeometryIO { public:// 加载几何模型:支持 .brep, .step/.stp, .iges/.igsstatic TopoDS_Shape L…...
docker的run命令 笔记250406
docker的run命令 笔记250406 Docker 的 run 命令用于创建并启动一个新的容器。它是 Docker 中最常用的命令之一,基本语法为: docker run [OPTIONS] IMAGE [COMMAND] [ARG...]常用选项(OPTIONS) 参数说明-d 或 --detach后台运行…...
批量将 HTML 转换为 Word/Txt/PDF 等其它格式
HTML是一种超文本标记语言,在进行网页编辑的时候非常常见,我们浏览的网站内容,都可以保存为 html 格式,如果想要将 html 格式的文档转为其它格式,比如 Word、PDF 或者 Txt,我们应该怎么做呢?今天…...
TPS入门DAY02 服务器篇
1.创建空白插件 2.导入在线子系统以及在线steam子系统库 MultiplayerSessions.uplugin MultiplayerSessions.Build.cs 3.创建游戏实例以及初始化会话创建流程 创建会话需要的函数,委托,委托绑定的回调,在线子系统接口绑定某一个委托的控制其…...
C高级,终端操作
核心要点整理 刷题作业 一、基础操作 命令行提示符结构 ubuntuubuntu:~$ 当前用户 | 连接符 | 计算机名 | 当前路径 | 用户权限 用户切换 su 用户名:切换用户sudo passwd 用户名:修改用户密码 常用指令 cd -:返回上一次路径ls:显…...
Lua语言的边缘计算
Lua语言的边缘计算探索 引言 随着物联网(IoT)、人工智能(AI)和大数据技术迅速发展,边缘计算作为一种分布式计算架构日益受到重视。其核心理念是将计算和数据存储资源更靠近数据源,以降低延迟、减轻网络负…...
RabbitMQ运维
RabbitMQ运维 一.集群1.简单介绍2.集群的作用 二.搭建集群1.多机多节点搭建步骤 2.单机单节点搭建步骤 3.宕机演示 三.仲裁队列1.简单介绍2.Raft协议Raft基本概念主节点选举选举过程 3.仲裁队列的使用 四.HAProxy负载均衡1.安装HAProxy2.HAProxy的使用 一.集群 1.简单介绍 Ra…...
【ESP32】ESP32物联网应用:MQTT控制与状态监测
ESP32物联网应用:MQTT控制与状态监测 引言 在物联网时代,远程监测和控制设备已经成为现实生活中常见的需求。本文将介绍如何使用ESP32微控制器配合MQTT协议,实现一个简单而强大的物联网应用:远程状态监测和设备控制。我们将以巴…...
如何保证RabbitMQ消息的可靠传输?
在这个图中,消息可能丢失的场景是1,2,3 1.在生产者将消息发送给RabbitMQ的时候,消息到底有没有正确的到达服务器呢,RabbitMQ提供了两种解决方案: a. 通过事务机制实现(比较消耗性能࿰…...
Redis高可用
主从复制 为什么要主从复制? 由于数据都是存储在一台服务器上,如果出事就完犊子了,比如: 如果服务器发生了宕机,由于数据恢复是需要点时间,那么这个期间是无法服务新的请求的;如果这台服务器…...
[项目总结] 在线OJ刷题系统项目技术应用(下)
🌸个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 🏵️热门专栏: 🧊 Java基本语法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 🍕 Collection与…...
链表算法中常用操作和技巧
目 1.常用技巧 1.1.画图 1.2.添加虚拟头节点 1.3.大胆引入中间变量 1.4.快慢双指针 1.4.1判断链表是否有环 1.4.2找链表中环的入口 2.常用操作 2.1. 创建一个新节点 2.2.尾插 2.3.头插 1.常用技巧 1.1.画图 画图可以让一些抽象的文字语言更加形象生动 画图&#…...
MySQL基础 [二] - 数据库基础
目录 库的增删查改 查看数据库 创建数据库 删除数据库 修改数据库 认识系统编码(字符集和校验规则) 查看系统默认字符集以及校验规则 查看数据库支持的字符集和字符集校验规则 验证不同校验码编码的影响 校验规则对数据库的影响 数据库的备份…...
【Linux篇】基础IO - 文件描述符的引入
📌 个人主页: 孙同学_ 🔧 文章专栏:Liunx 💡 关注我,分享经验,助你少走弯路! 文章目录 一. 理解文件1.1 侠义理解1.2 广义理解1.3 文件操作的归类认知1.4 系统角度 二. 回顾C语言文件…...
13.【.NET 8 实战--孢子记账--从单体到微服务--转向微服务】--微服务基础工具与技术--Refit
在微服务架构中,不同服务之间经常需要相互调用以完成复杂业务流程,而 Refit 能让这种“跨服务调用”变得简洁又可靠。开发者只需将对外暴露的 REST 接口抽象成 C# 接口,并通过共享库或内部 NuGet 包在各服务中引用,这种契约优先的…...
C++ 并发性能优化实战:提升多线程应用的效率与稳定性
🧑 博主简介:CSDN博客专家、CSDN平台优质创作者,获得2024年博客之星荣誉证书,高级开发工程师,数学专业,拥有高级工程师证书;擅长C/C、C#等开发语言,熟悉Java常用开发技术,…...
前端性能优化的全方位方案【待进一步结合项目】
以下是前端性能优化的全方位方案,结合代码配置和最佳实践,涵盖从代码编写到部署的全流程优化: 一、代码层面优化 1. HTML结构优化 <!-- 语义化标签减少嵌套 --> <header><nav>...</nav> </header> <main&…...
(undone) 并行计算 CS149 Lecture3 (现代多核处理器2 + ISPC编程抽象)
url: https://www.bilibili.com/video/BV1du17YfE5G?spm_id_from333.788.videopod.sections&vd_source7a1a0bc74158c6993c7355c5490fc600&p3 如上堂课,超线程技术通过储存不同线程的 execution context,能够在一个线程等待 IO 的时候低成本切换…...