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

2021第十二届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组

记录刷题的过程、感悟、题解。
希望能帮到,那些与我一同前行的,来自远方的朋友😉


大纲: 

 1、空间-(题解)-字节单位转换

 2、卡片-(题解)-可以不用当组合来写,思维题

 3、直线-(题解)-数学知识y=ax+b、+模拟

 4、货物摆放-(题解)-锻炼巧妙预处理的方式

 5、路径-(题解)-披着图论的,dp🥲,怪吓人、其实跟图论没啥关系

 6、时间显示-(题解)-时间转换与printf格式输出

 7、砝码称重-(题解)-一道线性dp

 8、杨辉三角形-(题解)-组合数+观察模拟

 9、双向排序-(题解)-真 · 靠观察,天才门,脑洞大开吧


题目: 

1、空间

本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

小蓝准备用 256MB 的内存空间开一个数组,数组的每个元素都是 32 位 二进制整数,如果不考虑程序占用的空间和维护内存需要的辅助空间,请问 256MB 的空间可以存储多少个 32 位二进制整数?

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 128M

 /* 基础知识 
1TB=1024GB
1GB=1024MB
1MB=1024KB
1KB=1024B(字节)
1B=8b(bit)
*/
// int 32位,4字节B  

#include <bits/stdc++.h>
using namespace std;int main(){cout<<256*1024*1024/4<<endl;return 0;
}

2、卡片

问题描述

小蓝有 k 种卡片, 一个班有 n 位同学, 小蓝给每位同学发了两张卡片, 一 位同学的两张卡片可能是同一种, 也可能是不同种, 两张卡片没有顺序。没有 两位同学的卡片都是一样的。

给定 n, 请问小蓝的卡片至少有多少种?

输入格式

输入一行包含一个正整数表示 n 。

输出格式

输出一行包含一个整数, 表示答案。

样例输入

6

样例输出

3

样例说明

小朋友们手中的卡片可能是: (1,1),(1,2),(1,3),(2,2),(2,3),(3,3)。

评测用例规模与约定

对于 50 的评测用例, 1≤n≤104。

对于所有评测用例, 1≤n≤109。

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 256M

其实这题,是可以不用动态规划。

简单的推导就行,简答的考察了一下思维。

 

大家看到了什么

第一个3个、2个、1个...倒序,对吧!就是根据这个,

你能简单的计算一下区间数量。(1、3、6...)从而逆向求出需要几张卡片。

举例:有5个小朋友,2张卡片,只能区分3个。而3张卡片能区分6个。所以,需要3张卡片。

#include <bits/stdc++.h>
#define int long long
using namespace std;signed main(){int n;cin>>n;int cnt = 1;int sum = 1; // 能够表示的个数 while(true){if(sum>=n) break;cnt++;sum+=cnt;} cout<<cnt<<endl;return 0;
} 

3、直线

题目描述

本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

在平面直角坐标系中,两点可以确定一条直线。如果有多点在一条直线上, 那么这些点中任意两点确定的直线是同一条。

给定平面上 2 × 3 个整点(x,y)∣0≤x<2,0≤y<3,x∈Z,y∈Z,即横坐标 是 0 到 1 (包含 0 和 1) 之间的整数、纵坐标是 0 到 2 (包含 0 和 2) 之间的整数 的点。这些点一共确定了 11 条不同的直线。

给定平面上 20×21 个整点 (x,y)∣0≤x<20,0≤y<21,x∈Z,y∈Z,即横 坐标是 0 到 19 (包含 0 和 19) 之间的整数、纵坐标是 0 到 20 (包含 0 和 20​) 之 间的整数的点。

请问这些点一共确定了多少条不同的直线。

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 128M

// 其实本题,能转化成简单的数学问题,也就是 是不是一条线的问题 
// 咱们这道题:
/*
  既然要找线段,首先就要确定两个点,从而确定一条线
  但是有一种情况是,线段可能重复计算
  排除重复的前提是,首先需要确定这条线: 
  这时,我们可以根据公式 y=kx+b;  
  我们可以根据 k 、b两个值,确定这条直线
  (a1、b1)(a2、b2)
  : b1 = ka1 + b
  : b2 = kb2 + b
  k = (b1-b2)/(a1-a2);
  b = (a1*b2-a2*b1)/(a1-a2) -- 切记,这是化简之后的。
  如果不化简,可能导致,精度损失过大,导致误判!!! 
  
  当然,在计算过程中,要排除一种情况,就是k无限大的可能。90°时,无限大。
  但只有20个,直接跳过,可以在结尾上加入。
  
  但是,前提要用set这个函数。 因为红黑树重载了pair,能用 < 比较
  但是unordered_set,没有重载pair的哈希 
*/

#include <bits/stdc++.h>
using namespace std;int main(){set<pair<double,double>> set; for(int a1=0; a1<20; ++a1){for(int b1=0; b1<21; ++b1){// 位置第一个(i,j)位置for(int a2=0; a2<20; ++a2){for(int b2=0; b2<21; ++b2){// 位置第二个(x,y)位置,现在,咱们知道了,两个位置,也可以开始计算了// 这个时候,要排除两个点:if(a1==a2) continue; // 当a1==a2的情况时 b1==b2重叠,b1!=b2 垂直double k =  (double)(b1-b2)/(a1-a2);double b = (double)(a1*b2-a2*b1)/(a1-a2);set.emplace(k,b);}}}}cout<<set.size()+20<<endl;return 0;
}

4、货物摆放

题目描述

小蓝有一个超大的仓库,可以摆放很多货物。

现在,小蓝有 n 箱货物要摆放在仓库,每箱货物都是规则的正方体。小蓝规定了长、宽、高三个互相垂直的方向,每箱货物的边都必须严格平行于长、宽、高。

小蓝希望所有的货物最终摆成一个大的长方体。即在长、宽、高的方向上分别堆 L、W、H 的货物,满足 n=L×W×H。

给定 n,请问有多少种堆放货物的方案满足要求。

例如,当 n=4 时,有以下 6 种方案:1×1×4、1×2×2、1×4×1、2×1×2、2×2×1、4×1×1。

请问,当 n=2021041820210418(注意有 16 位数字)时,总共有多少种方案?

提示:建议使用计算机编程解决问题。

答案提交

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

/*
    讲一个冷知识,普遍大家的编辑器,1s空转大概也就1e8次~1e9次之间
    而本题大概有1e16次方这么大,所有就不要有不切实际的幻想啦!
    所以做这种题目,不要怀疑!直接对数据提前处理。 
    就算预处理,依然要考虑一件事情,就是怎么处理16位数据。
    对题目分解,你或许会发现,其实本题参与运算的,其实都是质因数。

  当然,这里有一个冷知识,注意开辟数组的大小。int类型数组,开到1e8大概400MB,long long为800MB(都会内存越界),所以开到1e7最为合适。
*/

#include <bits/stdc++.h>
#define int long long
const int N = 1e7;
int arr[N];
using namespace std;signed main(){int sum = 2021041820210418;int cnt = 0;// 通过巧妙的数学思维,转换高纬度运算。并且求值 for(int i=1; i*i<=sum; ++i){ if(sum%i==0) arr[cnt++]=i;if(sum%i==0&&sum/i!=i) arr[cnt++]=sum/i; // 切记,千万别忘加sum%i,否则会导致误判很多 }  int res = 0;for(int i=0; i<cnt; ++i)for(int j=0; j<cnt; ++j)for(int k=0; k<cnt; ++k)if(arr[i]*arr[j]*arr[k]==sum) res++;cout<<res<<endl;return 0;
} 

5、路径

本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

小蓝学习了最短路径之后特别高兴,他定义了一个特别的图,希望找到图 中的最短路径。

小蓝的图由 2021 个结点组成,依次编号 1 至 2021。

对于两个不同的结点 a, b,如果 a 和 b 的差的绝对值大于 21,则两个结点 之间没有边相连;如果 a 和 b 的差的绝对值小于等于 21,则两个点之间有一条 长度为 a 和 b 的最小公倍数的无向边相连。

例如:结点 1 和结点 23 之间没有边相连;结点 3 和结点 24 之间有一条无 向边,长度为 24;结点 15 和结点 25 之间有一条无向边,长度为 75。

请计算,结点 1 和结点 2021 之间的最短路径长度是多少。

提示:建议使用计算机编程解决问题。

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 128M

/*
    如果,真的把这道题目当作图论来写,那就真是小可爱。
    怎么说呢,就是一道,血脉纯正的dp,与图真的,不太沾边
    但是,写这道题目的前提是,
    你要会求解 lcm,而求解lcm的前提是,你会求解 gcd。
    当这一切搞定,那就理所应当的开始dp之旅吧 
    dp[i]的,定义可以看作是 到达i 所走的距离 
*/

#include <bits/stdc++.h>
using namespace std;int dp[2070]; // 稍稍开大一点 
int gcd(int a, int b){return a%b==0?b:gcd(b,a%b); 
}
int main(){// dp[i]代表,到达i所走的距离 for(int i=1; i<=2021; ++i){for(int j=i+1; j<=i+21; ++j){ // 当然是算21的差距啦 if(dp[j]==0) dp[j]=dp[i]+i*j/gcd(i,j);else dp[j]=min(dp[j],dp[i]+i*j/gcd(i,j)); }}cout<<dp[2021]<<endl;return 0;
} 

6、时间显示

题目描述

小蓝要和朋友合作开发一个时间显示的网站。

在服务器上,朋友已经获取了当前的时间,用一个整数表示,值为从 1970 年 11 月 11 日 00:00:00 到当前时刻经过的毫秒数。

现在,小蓝要在客户端显示出这个时间。小蓝不用显示出年月日,只需要显示出时分秒即可,毫秒也不用显示,直接舍去即可。

给定一个用整数表示的时间,请将这个时间对应的时分秒输出。

输入描述

输入一行包含一个整数,表示时间。

输出描述

输出时分秒表示的当前时间,格式形如 HH:MM:SS,其中 HH 表示时,值为 0​​​​ 到 23​​​​,MM 表示分,值为 00​​​ 到 59​​​,SS 表示秒,值为 0​​ 到 59​。时、分、秒 不足两位时补前导 0。

输入输出样例

示例 1

输入

46800999

输出

13:00:00

示例 2

输入

1618708103123

输出

01:08:23

评测用例规模与约定

对于所有评测用例,给定的时间为不超过 10^18 的正整数。

// 毫秒的计算单位

// 当时的思考过程:先求出,有多少秒,在求出,有多少分,最后在求出,有多少小时,本题跟年、月无关
// 炸了,无论怎么写,好像都不对
// printf  . 的位置,哪里错了??!!!
/*

      其实这里有两点需要注意:1s=1000ms; 1ms=1000ns

      第二点,就是printf()的格式说明。
·        1、整数补零格式:printf("%02lld",a);补成3的格式:printf("%32lld",a);不足两位的补成3
         2、精度(四舍五入)的格式 printf("%.4lf",a);小数点后4位

*/

#include <bits/stdc++.h>
#define int long long
using namespace std;
// 毫秒的计算单位signed main(){int sum;cin>>sum;int ss = (sum/1000)%60; // 有多少秒int mm = (sum/1000/60)%60; // 有多少分int hh = (sum/1000/60/60)%24; // 求有多少小时printf("%02lld:%02lld:%02lld",hh,mm,ss);return 0;
}

7、砝码称重

问题描述

你有一架天平和 N 个砝码,这 N 个砝码重量依次是 W1,W2,⋅⋅⋅,WN​。

请你计算一共可以称出多少种不同的重量? 注意砝码可以放在天平两边。

输入格式

输入的第一行包含一个整数 N。

第二行包含 NN 个整数:W1,W2,W3,⋅⋅⋅,WN​。

输出格式

输出一个整数代表答案。

样例输入

3
1 4 6

样例输出

10

样例说明

能称出的 10 种重量是:1、2、3、4、5、6、7、9、10、11。

1=1;

2=6−4(天平一边放 6,另一边放 4);​

3=4−1;

4=4;

5=6−1;

6=6;

7=1+6;

9=4+6−1;

10=4+6;

11=1+4+6。

评测用例规模与约定

对于 50的评测用例,1≤N≤15。

对于所有评测用例,1≤N≤100,N​个砝码总重不超过 100000。

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 256M

// 要给出暴力解法

/*
    怎么说呢,这道题目,都暗示的这么明显了。
    其实多少有点背包问题的味道。
    但,他可比背包问题,多了不同的情况
    (背包问题考虑的是,放还是不放
    (砝码问题,考虑的是,放的时候,放左边,还是放右边,或者不放
    所以大胆的设dp值:dp[i][j] 含义是第i个砝码,能够称出的重量为j
    递推公式,更易推导出来
    咱们这里先举出所有递推公式: 
    ( dp[i-1][j];
    ( dp[i-1][abs(j-w)]
    ( dp[i-1][j+w]
    放入第i个砝码时,判断能否称出重量k 是由上一个砝码决定的。 
    如本题:1 4 6
    dp[i-1][j] 
    当轮到砝码6时,判断是否能称出1时,dp[i][k]=dp[i-1][k],直接判断之前是否出现这种情况。
    dp[i-1][j+w]
    大家可以找一个,他的作用是,放在天平两侧 
                    1、4、6无法举出好例子,当如果i-1时,能称出,12这个重量,那么dp[i-1][12-6]就相当于称出了6这个重量。 
    dp[i-1][abs(j-w)],公式推导,天平放在同一侧。 
    当轮到砝码6时,判断能否称出2这个重量时,2-6;-->看的就是 是否存在 dp[i-1][abs(2-6)]--dp[i-1][abs(i-j)];
                   判断是否能称出砝码10时,10-6;--> 看的就是 是否存在 dp[i-1][abs(10-6)]--dp[i-1][abs(i-j)];
                   注:其实,j-w<0时,就相当于,放在了天平两侧      
*/

#include<bits/stdc++.h>
using namespace std;
const int N = 1e2+5;
const int W = 2e5+5; int dp[N][W]; 
int weight[N];
int main(){memset(dp,0,sizeof dp);int n; // 表示有几个砝码cin>>n; for(int i=1; i<=n; ++i) cin>>weight[i]; // 天呐,简直了dp[0][0]=1;for(int i=1; i<=n; ++i){int w = weight[i]; // 原来是这样子的呢。for(int k=0; k<100001; ++k){ // 原来是这样子的呢。的呢。 if(dp[i-1][k]) dp[i][k]=dp[i-1][k];else {dp[i][k]=max(dp[i-1][abs(k-w)],dp[i-1][k+w]); }} } int cnt = 0;for(int i=1; i<100001; ++i) if(dp[n][i]) cnt++;cout<<cnt;return 0;
}

8、杨辉三角形

题目描述

下面的图形是著名的杨辉三角形:

如果我们按从上到下、从左到右的顺序把所有数排成一列,可以得到如下数列: 1,1,1,1,2,1,1,3,3,1,1,4,6,4,1,⋯

给定一个正整数 N,请你输出数列中第一次出现 NN 是在第几个数?

输入描述

输入一个整数 N。

输出描述

输出一个整数代表答案。

输入输出样例

示例 1

输入

6

输出

13

评测用例规模与约定

对于 20​​ 的评测用例,1≤N≤10​; 对于所有评测用例,1≤N≤1000000000。

/*
    能完成这道题目,观察思维都是次要的,因为,你要首先要知道杨辉三角与组合数的关系。
    当你知道与组合数之间的关系后,再看看y总讲解。切记先上网找资料研究一下。
*/ 

#include <bits/stdc++.h>
#define int long long 
using namespace std;// 为啥>>1 不行??? 
// 求该数值
int get_num(int n, int m,int num){int res=1;// 这样避免造成精度损失for(int i=n,j=1; j<=m; i--,j++){res*=i;res/=j;if(res>num) return res; // 避免了,组合数溢出,成为负数的问题}
//	for(int i=n,j=m; j>0; i--,j--) res*=i/j;
//	要排除掉这种情况!会造成精度损失 return res;
} bool get_res(int k, int num){int l = 2*k, r=max(num,2*k); // 直接延申有边界,但是会存在num<2*k的情况. while(l<=r){ // 二分查找,查找第一个大于等于 int mid = l+(r-l)/2;if(get_num(mid,k,num)>=num) r=mid-1;else l=mid+1; 	} if(get_num(l,k,num)==num) cout<<k+1+(l+1)*l/2<<endl;else return false;return true; 
} signed main(){int num;cin>>num;if(num==1){ // 如果是1,就可以直接结束了。 cout<<1<<endl;return 0;}// 开启二分查找 for(int i=16; i>=1; --i){if(get_res(i,num)) return 0;	}	return 0;
} 

9、双向排序

题目描述

给定序列 (a1,a2,⋅⋅⋅,an)=(1,2,⋅⋅⋅,n),即 ai=i。

小蓝将对这个序列进行 mm 次操作,每次可能是将 a1,a2,⋯,aqi 降序排列,或者将 aqi,aqi+1,⋯,an​ 升序排列。

请求出操作完成后的序列。

输入描述

输入的第一行包含两个整数 n,m,分别表示序列的长度和操作次数。

接下来 m​ 行描述对序列的操作,其中第 i 行包含两个整数 pi,qi 表示操作类型和参数。当 pi=0时,表示将 a1,a2,⋅⋅⋅,aqi降序排列;当 pi=1​ 时,表示将 aqi,aqi+1,⋯, 升序排列。

输出描述

输出一行,包含 n 个整数,相邻的整数之间使用一个空格分隔,表示操作完成后的序列。

输入输出样例

示例

输入

3 3
0 3
1 2
0 2

输出

3 1 2

样例说明

原数列为 (1,2,3)​​​​​。

第 1​​​​​ 步后为 (3,2,1)​​​​​。

第 2​​​​ 步后为 (3,1,2)​​。

第 3​​​ 步后为 (3,1,2)。与第 2 步操作后相同,因为前两个数已经是降序了。

评测用例规模与约定

对于 30% 的评测用例,n,m≤1000;

对于 60% 的评测用例,n,m≤5000;

对于所有评测用例,1≤n,m≤100000,0≤pi≤1,1≤qi≤n。

好啦,这道题目,y总讲解的也挺不错的,大家可以直接食用 :: 传送门 :: 

#include<iostream>
#include<algorithm>
using namespace std;
typedef pair<int,int> PII;
const int N=1e5+7;
PII stk[N];//栈记录有效操作
int s[N],top;//最后的数组,top为栈的头指针
int main(){int n,m;cin>>n>>m;while(m--){//m次操作int q,p;cin>>q>>p;if(!q){while(top && stk[top].first==0)p=max(p,stk[top--].second);//对于重复降序,我们只需要保持最长值while(top>=2 && stk[top-1].second<=p)top-=2;//维持交错的单调性stk[++top]={0,p};}else if(top){while(top && stk[top].first==1)p=min(p,stk[top--].second);while(top>=2 && stk[top-1].second >=p)top-=2;stk[++top]={1,p};}}int l=1,r=n,k=n;for(int i=1;i<=top;i++)//读取栈if(stk[i].first)//读取他的正逆序while(l<stk[i].second && l<=r)s[l++]=k--;elsewhile(r>stk[i].second && l<=r)s[r--]=k--;//最后补充未填充的数if(top!=0&&stk[top].first==0) // 若有余数则为降序while(l<=r) s[l++]=k--;else if(top!=0)while(l<=r) s[r--]=k--;for(int i=1;i<=n;i++)cout<<s[i]<<" ";}

最后一道题,哎,一言难进....


知识点:

1、蓝桥杯常考基础知识点:

数据类型与取值范围
  • int类型 32 位系统中,占4个字节,取值范围是 -2^31 到 2^31-1。
  • long类型 一般占8个字节,取值(18个整数左右)
  • float类型 占4个字节,用于表示单精度浮点数,有一定的精度范围。
  • double类型 占用8个字节,是双精度浮点数,精度更高(通常16~17个整数,long double 19个)
进制转换:
  • 二进制、八进制、十进制、十六进制之间转换,其中十六进制,(十->二)可以使用除2取余法。将二进制转换为十六进制,可以每位4位一组转换。
  • 位运算与进制之间的关系。如左移一位,相当于乘2
字符编码:
  • ASCII码:是一种常见编码,通常由7位、8位二进制数表示一个二进制数表示一个字符。总共可以表示128个 or 256个。
  • Unicode编码:为世界上几乎所有的字符都分配了一个唯一的数字编号,包括汉字、希腊字母、阿拉伯字母等各种字符集。常见的 Unicode 编码实现有 UTF-8、UTF-16 等,UTF-8 是一种可变长度的编码方式,它可以用 1 到 4 个字节来表示一个字符,能够很好地兼容 ASCII 码。
计算机存储单位换算

TB(太字节)、GB(吉字节)、MB、KB(千字节)、B、b;

b(1位、1bit)

B(1字节)

KB = 1024B

MB = 1024KB

时间单位换算

1 秒(s)= 1000 毫秒(ms),1 毫秒 = 1000 微秒(μs),1 微秒 = 1000 纳秒(ns)

2、基础数学知识

  • 数论
    • 质数:判断一个数是否为质数、质数的筛选(如埃氏筛法、线性筛法)等。
    • 约数:求一个数的约数个数、约数之和,以及最大公约数和最小公倍数的计算方法,如辗转相除法。
    • 同余:同余的概念、性质,以及求解同余方程等。例如,在一些密码学相关的题目中,可能会用到同余的知识来进行加密和解密操作。
  • 组合数学
    • 排列组合:计算排列数和组合数,解决一些与计数相关的问题,如在给定条件下的排列方式有多少种,或者从若干元素中选取部分元素的组合方法数等。
    • 鸽巢原理:用于解决一些存在性问题,例如证明在一定数量的物体分配到若干个集合中,必然存在某个集合满足特定条件。
    • 容斥原理:计算多个集合的并集元素个数,通过容斥原理可以避免重复计算,在一些复杂的计数问题中经常会用到。

3、概率论与统计学

  • 概率计算:计算事件发生的概率,包括古典概型、条件概率、全概率公式等。例如,在一些抽奖、游戏等场景的题目中,需要运用概率知识来分析结果。
  • 期望与方差:理解期望和方差的概念,能够计算随机变量的期望和方差,用于评估随机现象的平均水平和波动程度。

4、几何知识

  • 平面几何:掌握点、线、面的相关性质和计算,如两点间距离公式、直线的斜率、三角形的面积、相似三角形的性质等。在一些图形处理、路径规划等类型的题目中会用到平面几何知识。
  • 解析几何:将几何问题转化为代数问题进行求解,例如通过建立坐标系,利用直线方程、圆的方程等来解决相关问题。

5、离散数学

  • 图论:图的基本概念,如顶点、边、度数、连通图等;图的遍历算法,如深度优先搜索(DFS)、广度优先搜索(BFS);以及一些经典的图论算法,如最短路径算法(迪杰斯特拉算法、弗洛伊德算法)、最小生成树算法(普里姆算法、克鲁斯卡尔算法)等。图论在解决网络拓扑、路径规划、任务分配等问题中有着广泛的应用。
  • 逻辑推理:命题逻辑、谓词逻辑的基本概念和推理规则,能够进行逻辑表达式的化简、证明以及逻辑推理问题的求解。在一些需要根据给定条件进行推理判断的题目中,逻辑推理能力是关键。

6、O({log_{2}}^{n})的时间奥秘

通常,他是用到分治法中的,每次区间减半。(如:二分查找)

假设有n个数值,n/2^k=1;

对数转化:2^k=n   :::   k =  {log_{2}}^{n}

所以就是这么求log的时间复杂度的。

相关文章:

2021第十二届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组

记录刷题的过程、感悟、题解。 希望能帮到&#xff0c;那些与我一同前行的&#xff0c;来自远方的朋友&#x1f609; 大纲&#xff1a; 1、空间-&#xff08;题解&#xff09;-字节单位转换 2、卡片-&#xff08;题解&#xff09;-可以不用当组合来写&#xff0c;思维题 3、直…...

【数据结构】之二叉树

二叉树是我们在数据结构中学到的第一个非线性结构&#xff0c;是后续学习更为复杂的树、图结构的基础。本文整理了二叉树的概念定义、基本操作、遍历算法、伪代码与代码实现以及实例说明&#xff0c;方便大家随时查找对应。 一、定义与基本术语 二叉树是一种树形结构&#xf…...

电感、互感器、变压器和磁珠综合对比——《器件手册--电感/线圈/变压器/磁珠篇》

三、电感/线圈/变压器/磁珠 名称 定义 特点...

CLIP中的Zero-Shot Learning原理

CLIP&#xff08;Contrastive Language-Image Pretraining&#xff09;是一种由OpenAI提出的多模态模型&#xff0c;它通过对比学习的方式同时学习图像和文本的表示&#xff0c;并且能在多种任务中进行零样本学习&#xff08;Zero-Shot Learning&#xff09;。CLIP模型的核心创…...

基于 Redis 实现一套动态配置中心 DCC 服务与反射基础知识讲解

目录 动态配置中心核心价值 轻量级 Redis 方案与 ZooKeeper 的对比分析 为什么选择自定义 Redis 方案&#xff1f; 1. 技术决策背景 一、活动降级拦截 1. 定义与作用 2. 实现原理 二、活动切量拦截 1. 定义与作用 2. 实现原理 三、两者的核心区别 四、实际应用案例 1. 电商大促…...

vue 前端遇到问题 样式不展示

vue 前端遇到问题 样式不展示 先看接口返回有数据没 如果有数据看下 是不是 输入赋值给其他 字段 没有赋值上导致报错 所以页面没展示数据...

基于 Spring Boot + Vue 的 [业务场景] 管理系统设计与实现

技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论文…...

2025蓝桥杯JavaB组

说明 博主自己水平有限&#xff0c;而且答案也不一定对&#xff0c;下面代码和思路仅作分享。我只把我考场上做了的写出来了&#xff0c;有什么问题欢迎评论区交流。 A&#xff1a;逃离高塔 思路&#xff1a; 由于有了去年的经验&#xff0c;所以一上来我就是找规律&#xf…...

HDF5文件格式:数据类型与读写功能详解

HDF5文件格式&#xff1a;数据类型与读写功能详解 HDF5简介 HDF5&#xff08;Hierarchical Data Format version 5&#xff09;是一种用于存储和管理大量科学数据的文件格式和库。它由美国国家高级计算应用中心&#xff08;NCSA&#xff09;开发&#xff0c;具有以下特点&…...

探索 Python 的 functools 模块:缓存、属性缓存与 LRU 缓存

李升伟 编译 Python 的 functools 模块是函数式编程爱好者的宝库&#xff0c;提供了许多工具来提升代码的效率和优雅性。本文将深入探讨三个强大的函数——cache、cached_property 和 lru_cache&#xff0c;它们通过存储昂贵计算的结果来优化性能。无论是加速递归算法还是简化…...

缓存与数据库一致性:从问题到解决方案全解析

一、⼀致性问题的由来&#xff1a;为什么会不一致&#xff1f; 我们先从现实例子出发&#xff0c;来看为什么会出现一致性问题&#xff1a; &#x1f4e6; 场景举例&#xff1a;电商下单业务 用户提交订单 → 服务写入数据库订单表&#xff1b;同时更新缓存&#xff08;比如用…...

【android bluetooth 框架分析 02】【Module详解 2】【gd_shim_module 模块介绍】

1. 背景 上一章节 我们介绍了 module_t 的 大体框架 &#xff0c;本节内容我们就选择 我们的 gd_shim_module 模块为例子&#xff0c;具体剖析一下&#xff0c;它里面的逻辑。 static const char GD_SHIM_MODULE[] "gd_shim_module";// system/main/shim/shim.cc …...

dbt:新一代数据转换工具

dbt&#xff08;Data Build Tool&#xff09;一款专为数据分析和工程师设计的开源工具&#xff0c;专注于 ETL/ELT 流程的数据转换&#xff08;Transform&#xff09;环节&#xff0c;帮助用户以高效、可维护的方式将原始数据转换为适合分析的数据模型。 用户只需要编写查询&am…...

Linux-内核驱动-makemenu,make modules,make uImage,杂项

动态生成设备节点设备号...

linux 内存踩踏导致的空指针问题分析纪要

1&#xff0c;查看日志信息打印 我们看到日志发现发包的skb模块有NULL pointer情况&#xff0c;我们看代码分析skb指针不可能出现是空指针&#xff0c;这个时候我们怀疑可能是出现了踩内存导致的空指针情况&#xff0c;所以我们首先需要找到系统PANIC的条件&#xff0c;也就是…...

【C++】 —— 笔试刷题day_14

一、乒乓球筐 题目解析 题目输入两个字符串A和B&#xff0c;分别代表A和B中的乒乓球&#xff0c;不同的大写字母就表示不同的乒乓球&#xff1b; 如果判断B中的所有乒乓球在A中都有&#xff0c;且A中每种乒乓球的数量大于等于B中的。&#xff08;简单来说就是B是A的子集&#…...

在WPS中通过JavaScript宏(JSA)调用DeepSeek官方API自动识别标题级别和目录

我们希望通过AI&#xff0c;能够自动识别像“一”、“&#xff08;一&#xff09;”、“1”、“&#xff08;1&#xff09;” 这类常见标题序号。做一个规则&#xff0c;如果存在“一”时&#xff0c;则“一”、“&#xff08;一&#xff09;”、“1”分别识别为H1、H2、H3&…...

修复 WPS 编译错误:缺少:Sub或Function 且出现两个MathType加载项

问题首次出现于2025.4.12。 同时使用了Word和WPS&#xff0c;在里面都使用了MathType&#xff0c;在Microsoft的Word中&#xff0c;加载项能正常加载且显示&#xff0c;这也是我们要的效果。 而在WPS中&#xff0c;却出现了两个MathType&#xff0c;且在启动时会弹窗报错&…...

HTTP协议

目录 1 Fiddler工具 2 HTTP协议 2.1 HTTP请求和响应格式 2.2 URL 2.3 方法method 2.3.1 GET 2.3.2 POST 2.4 请求报头Header 2.5 请求正文body 2.6 http响应状态码 2.7 响应报头header HTTP协议是应用层的协议&#xff0c;基于传输层的TCP协议来传输&#xff0c;数据…...

拓扑排序 —— 2. 力扣刷题207. 课程表

题目链接&#xff1a;https://leetcode.cn/problems/course-schedule/description/ 题目难度&#xff1a;中等 相关标签&#xff1a;拓扑排序 / 广度优先搜搜 BFS / 深度优先搜索 DFS 2.1 问题与分析 2.1.1 原题截图 2.1.2 题目分析 首先&#xff0c;理解题目后必须马上意识到…...

寻找峰值 --- 二分查找

目录 一&#xff1a;题目 二&#xff1a;算法原理 三&#xff1a;代码实现 一&#xff1a;题目 题目链接&#xff1a;162. 寻找峰值 - 力扣&#xff08;LeetCode&#xff09; 二&#xff1a;算法原理 三&#xff1a;代码实现 class Solution { public:int findPeakElemen…...

SAP系统客户可回收包材库存管理

问题&#xff1a;客户可回收包材库存管理 现象&#xff1a;回收瓶无库存管理&#xff0c;在库数量以及在客户的库存数量没有统计&#xff0c;管理混乱。 解决方法&#xff1a; 客户可回收包装材料在SAP有标准的解决方案&#xff0c;在集团尚未启用该业务&#xff0c;首先…...

C++标识符:检查是否和保留字冲突

1. 基础知识 最基本的要求&#xff1a; 字母、数字、下划线组成&#xff0c; 并且不能是数字开头。 禁忌1&#xff1a; C 关键字不能用做标识符。 它们是&#xff1a; alignas alignof asm auto bool break case catch char char16_t char32_t class const constexpr const_…...

【Java多线程】告别线程混乱!深度解析Java多线程4大实现方式(附实战案例)

一、继承Thread类 实现步骤&#xff1a; 1.继承Thread类 2.重写run()方法 3.创建线程对象并调用start()方法 示例&#xff1a; class MyThread extends Thread {Overridepublic void run() {for (int i 0; i < 5; i) {System.out.println(Thread.currentThread().getNam…...

Linux安装yum和python

一、安装yum(CentOS) 查看yum版本 yum --version 如果未安装&#xff0c;执行以下部分&#xff1a; 1. 确保你的系统中已经安装了epel仓库&#xff0c;如果没有安装可以通过以下命令安装&#xff1a; sudo yum install epel-release 2.yum安装 – CentOS/RHEL系统&#…...

【数据结构】HashMap源码 —— 简单介绍

HashMap源码介绍 下面并非完整的源码&#xff0c;主要简单了解其流程。 1. 基本成员变量 哈希桶/开散列&#xff0c;链地址法/开链法是由&#xff1a;数组 链表(单链表) 红黑树&#xff08;当数组长度>64 && 链表长度>8以后&#xff0c;链表变成红黑树&#xf…...

149页研读——华为基于IPD全过程研发质量管理【附全文阅读】

本文介绍了IPD(集成产品开发)的全过程研发质量管理,强调了以客户需求为导向,通过跨部门协同、资源整合、快速响应等方式提高研发效率和成功率。文章详细阐述了IPD研发管理体系的精要,包括其核心思想、优势、框架以及核心理念。 其中,跨领域平台与技术研发、端到端流程与项…...

深入理解 v-for 指令及其使用方法

在 Vue.js 中&#xff0c;v-for 是用于渲染列表的核心指令&#xff0c;它允许你通过循环渲染数据源中的每一项。通过 v-for&#xff0c;你可以轻松地将数组、对象或其他可迭代的数据渲染成 HTML 元素。本文将详细介绍 v-for 的基本用法、常见的应用场景、最佳实践及性能优化&am…...

swift菜鸟教程24-25(可选链,自动引用计数)

一个朴实无华的目录 今日学习内容&#xff1a;1.Swift 可选链1.1定义1.2通过可选链调用方法1.3使用可选链调用下标脚本1.4通过可选链接调用来访问下标1.4访问可选类型的下标 2.Swift 自动引用计数&#xff08;ARC&#xff09;2.1实例之间的循环强引用会造成内存泄露2.2弱引用&a…...

使用 Visual Studio 2022 (VS2022) 编译 FreeCAD 1.0.0 的详细教程

一、环境准备 官方教程&#xff1a;在 Windows 上编译 - FreeCAD Documentation Windows 10/11&#xff08;推荐&#xff09; git vs2022 cmake 3.26.4 Doxygen1.12 二、获取源码与依赖 版本关系 打开Git Bash或CMD&#xff0c;执行以下命令 git clone --recurse-sub…...

机械臂只有位置信息是否可以进行手眼标定?

平常我在做手眼标定时&#xff0c;一般都是通过OpenCV的cv::calibrateHandEye函数进行求解&#xff0c;需要输入多组不同的机械臂位姿。今天遇到了一款舵机机器人&#xff0c;只能获取位置&#xff0c;得不到姿态信息&#xff0c;想着那就把姿态都设为0&#xff0c;结果求不出来…...

Unity入门

文章目录 Unity脚本基础大基础生命周期函数Inspector窗口显示常用特性辅助特性 MnonBehaviour基类成员变量成员方法 组件GameObject成员变量gameObject静态方法成员方法 组件Time静态成员变量 组件TransformVector3结构体基础基本概念常用向量表示常用方法 位置与位移位置posit…...

《汽车制造技术基础》第一次作业

作业内容 查阅相关资料&#xff0c;谈谈对汽车制造技术的发展的理解。 可以是关于汽车的先进制造技术 或 汽车先进制造技术 与 制造理念的发展趋势 或 汽车先进制造技术对环境与可持续发展的影响等。 以下从技术突破、制造理念转型及环境影响三个维度展开对汽车制造技…...

烟花爆竹储存作业安全要求

烟花爆竹储存作业证是从事相关作业的法定凭证&#xff0c;旨在确保操作人员具备专业知识和安全技能&#xff0c;防止因违规操作引发火灾、爆炸等事故。根据《烟花爆竹安全管理条例》及相关法规&#xff0c;未取得作业证的人员不得从事烟花爆竹储存、搬运、管理等作业。 仓库选址…...

Flask+Plotly结合动态加载图形页面实践

1. DeepSeek帮我实践 1.1. 我的提问既设计方案 原有如下主页:dashboard.html,现增加“预测模型学习”,对感知机神经网络描述如下: 1、输入与输出为固定值,例如输入层215,输出层48; 2、模型为回归神经网络; 3、中层是可动态调整的,例如定义如下:第二层,200,第三层…...

leetcode每日一题:统计好整数的数目

题目 给你两个 正 整数 n 和 k 。 如果一个整数 x 满足以下条件&#xff0c;那么它被称为 k 回文 整数 。 x 是一个 回文整数 。 x 能被 k 整除。 如果一个整数的数位重新排列后能得到一个 k 回文整数 &#xff0c;那么我们称这个整数为 好 整数。比方说&#xff0c;k 2 …...

《2025蓝桥杯C++B组:D:产值调整》

**作者的个人gitee**​​ 作者的算法讲解主页▶️ 每日一言&#xff1a;“泪眼问花花不语&#xff0c;乱红飞过秋千去&#x1f338;&#x1f338;” 题目 二.解题策略 本题比较简单&#xff0c;我的思路是写三个函数分别计算黄金白银铜一次新产值&#xff0c;通过k次循环即可获…...

【模块化拆解与多视角信息1】基础信息:隐藏的筛选规则——那些简历上没说出口的暗号

写在最前 作为一个中古程序猿,我有很多自己想做的事情,比如埋头苦干手搓一个低代码数据库设计平台(目前只针对写java的朋友),比如很喜欢帮身边的朋友看看简历,讲讲面试技巧,毕竟工作这么多年,也做到过高管,有很多面人经历,意见还算有用,大家基本都能拿到想要的offe…...

当Browser Use遇见A2A:浏览器自动化与智能体协作的“冰与火之歌“

——一场正在改写数字文明的技术奇遇 第一章 浏览器革命&#xff1a;从"手动挡"到"自动驾驶" 1.1 传统自动化工具的"中年危机" 还记得2023年那个抓狂的凌晨吗&#xff1f;你蹲守演唱会门票时&#xff0c;Selenium脚本因为验证码识别失败第108次…...

Python:开启自动化办公与游戏开发的无限可能

重要的事情放在前面 Python自动化办公和游戏 Python&#xff1a;开启自动化办公与游戏开发的无限可能 在数字化时代的浪潮中&#xff0c;Python以其强大的功能和简洁的语法&#xff0c;成为了众多开发者手中的得力工具&#xff0c;尤其在自动化办公与游戏开发领域&#xff0…...

腾讯后台开发 一面

一、手撕 合并升序链表 合并两个排序的链表_牛客题霸_牛客网 顺时针翻转矩阵 顺时针旋转矩阵_牛客题霸_牛客网 二、八股 1、静态变量和实例变量 public class House {public static String buildDate "2024-10-27"; // 静态变量public String color; // 实…...

基于生成对抗网络(GAN)的手写数字生成实践

基于生成对抗网络&#xff08;GAN&#xff09;的手写数字生成实践 一、图像生成的技术演进 在人工智能领域&#xff0c;图像生成技术经历了从传统算法到深度学习的革命性发展。其中&#xff0c;生成对抗网络&#xff08;Generative Adversarial Networks, GANs&#xff09;作…...

网络互连与互联网

1.在路由表中找不到目标网络时使用默认路由&#xff0c;默认路由通常指本地网关的地址。 2.OSPF最主要的特征是使用分布式链路状态协议&#xff0c;而RIP使用的是距离向量协议。 3.OSPF使用链路状态公告LSA扩散路由信息 4.内部网关路由协议IGRP是一种动态距离矢量路由协议&a…...

大模型常见面试题

大模型常见面试题 大模型相关的面试问题通常涉及模型的原理、应用、优化以及面试者对于该领域的理解和经验。以下是一些常见的 大模型面试问题以及建议的回答方式&#xff1a; 请简述什么是大模型&#xff0c;以及它与传统模型的主要区别是什么&#xff1f; 回答&#xff1a…...

python高级编程一(生成器与高级编程)

@TOC 生成器 生成器使用 通过列表⽣成式,我们可以直接创建⼀个列表。但是,受到内存限制,列表容量肯定是有限的。⽽且,创建⼀个包含100万个元素的列表,不仅占⽤很⼤的存储空间,如果我们仅仅需要访问前⾯⼏个元素,那后⾯绝⼤多数元素占 ⽤的空间都⽩⽩浪费了。所以,如果…...

Linux线程属性与多线程开发:API详解与实战代码解析

Linux 线程的属性 线程池 多线程的创建 线程的属性 引入 我们设想一个场景&#xff0c;使用pthread_detach时&#xff0c;发现线程早就已经结束了&#xff0c;这时候pthread_detach还能正常发挥清理线程的 独有空间 的作用吗&#xff1f; 答案是可以的&#xff0c;但是这难…...

Inkscape安装教程

Inkscape 是一款开源的矢量图形编辑软件&#xff0c;功能强大且免费&#xff0c;适用于 Windows、macOS 和 Linux 系统。以下是在不同操作系统上安装 Inkscape 的详细教程&#xff1a; 一、Windows 系统安装 Inkscape 1. 下载安装包 打开浏览器&#xff0c;访问 Inkscape 官方…...

危化品安全员岗位注意事项有哪些?

危化品安全员肩负着保障危化品生产、储存、运输和使用等环节安全的重要职责&#xff0c;其岗位注意事项涉及多个方面&#xff0c;以下是一些主要内容&#xff1a; 法规标准与制度执行 必须熟悉并严格遵守国家和地方有关危化品安全管理的法律法规、标准规范&#xff0c;如《危险…...

1、从零搭建魔法工坊:React 19 新手村生存指南

一、开篇&#xff1a;新世界的入场券 "你好&#xff0c;年轻的魔法学徒&#xff01;欢迎来到React魔法世界。我是你的向导赫敏韦斯莱&#xff0c;今天我们将用React 19这根全新魔杖&#xff0c;搭建属于你的第一座魔法工坊。" ——以对话形式开场&#xff0c;消除技…...

链表代码实现(C++)

数据结构第三篇 一、几个注意点 1、同时持有头尾结点的引用 双链表一般同时持有头尾结点的引用 因为在工程应用中&#xff0c;通常在容器尾插入元素&#xff0c;双链表持有尾部节点的引用&#xff0c;就可以在O&#xff08;1&#xff09;时间复杂度的情况下在尾部添加元素。…...