2021 RoboCom 世界机器人开发者大赛-本科组(初赛)

news2024/11/15 3:59:48

编程题得分:100 总分:100

7-1 懂的都懂 (20分)

众所周知,在互联网上有很多话是不好直接说出来的,不过一些模糊的图片仍然能让网友看懂你在说什么。然而对这种言论依然一定要出重拳,所以请你实现一个简单的匹配算法。

现在我们采集了原图的一些特征数据,由 N 个小于 255 的非负整数组成,假设对于给定的若干张由 Mi​ 个同样小于 255 的非负整数组成的新图的特征数据,每个数据都可以由原图中任意四个不同数据的平均值计算而来,则称新图为原图的相似图片。对于给出的数据,请你判断是不是相似图片。

注意,不同数据指的并非是数据的值不同,而是不能取同一个数据多次。对于两个相同值的数据,如果给出两次,则可以取两次。

输入格式:

输入第一行是两个整数 N,K (1 ≤ N ≤ 50, 1 ≤ K ≤ 200),表示采集的原图的特征数据个数和新图的张数。

接下来一行为 N 个小于 255 的非负整数,表示原图的特征数据。

最后的 K 行,每行第一个数是 Mi​ (1 ≤ Mi​ ≤ 200),表示新图的特征数据个数。然后是 Mi​ 个小于 255 的非负整数,表示新图的特征数据。

输出格式:

对于每一张新图,如果为相似图片,则在一行中输出 Yes,否则输出 No。

输入样例:

5 3
4 8 12 20 40
3 11 16 19
3 12 16 19
10 11 11 11 11 11 11 11 11 11 11

输出样例:

Yes
No
Yes

编译器

NO_COMPILER

代码

#include<bits/stdc++.h> 
using namespace std;

int n, k, a[55], t;
int b;
bool tong[1500];

int main(){
	cin>>n>>k;
	for(int i = 1; i<=n; ++i){
		scanf("%d", &a[i]);
	}
	
	for(int i = 1; i<=n; ++i)
	for(int j = i+1; j<=n; ++j)
	for(int k = j+1; k<=n; ++k)
	for(int p = k+1; p<=n; ++p){
		tong[a[i]+a[j]+a[k]+a[p]] = 1;
	}
	
	while(k--){
		cin>>t;
		bool flag = 1;
		for(int i = 1; i<=t; ++i){
			scanf("%d", &b);
			if(tong[b*4] == 0)  flag = 0;
		}
		if(flag) cout<<"Yes"<<endl;
		else cout<<"No"<<endl;
	}

    return 0;
}

编译器输出

a.cpp: In function ‘int main()’:
a.cpp:12:8: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d", &a[i]);
   ~~~~~^~~~~~~~~~~~~
a.cpp:26:9: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
    scanf("%d", &b);
    ~~~~~^~~~~~~~~~
测试点结果测试点得分耗时内存
0答案正确104.00 ms572 KB
1答案正确24.00 ms728 KB
2答案正确14.00 ms604 KB
3答案正确34.00 ms568 KB
4答案正确48.00 ms580 KB

评测结果 答案正确 (20 分)

7-2 芬兰木棋 (25分)

芬兰木棋(Mölkky,又称芬兰木柱)是源自芬兰的一项运动。哲哲将这个运动改造成了赛博朋克单人版,现在场上一开始有 N 根立起的小木棋(上面分别标有一个非负整数),哲哲投掷一根大木棋去击倒这些小木棋以获得分数。分数规则如下:

  • 如果仅击倒 1 根木棋,则得木棋上的分数。
  • 如果击倒 2 根或以上的木棋,则只得击倒根数的分数。(例如击倒 5 根,则得 5 分。)

哲哲固定站在 (0,0) 点上,四周放着若干个小木棋 (Xi​,Yi​),坐标均为整数。每次哲哲可以朝一个方向扔出大木棋,大木棋会打倒这个方向上离哲哲最近的 k 个小木棋。哲哲游戏水平很高超,所以这个 k 可以自由控制。

请问哲哲最多能拿多少分,在获得最多分数的情况下最少需要扔出多少次大木棋?

规则与真实规则有较大出入,真实游玩时请以国际莫尔基组织的规则为准

输入格式:

输入第一行是一个正整数 N (1 ≤ N ≤ 105),表示场上一开始有 N 个木棋。

接下来 N 行,每行 3 个整数 Xi​,Yi​,Pi​,分别表示木棋放置在 (Xi​,Yi​),木棋上的分数是 Pi​。坐标在 32 位整数范围内,分数为小于等于 1000 的正整数。

保证 (0,0) 点没有木棋,也没有木棋重叠放置。

输出格式:

输出一行两个数,表示最多分数以及获得最多分数最少需要投掷大木棋多少次。

输入样例:

11
1 2 2
2 4 3
3 6 4
-1 2 2
-2 4 3
-3 6 4
-1 -2 1
-2 -4 1
-3 -6 1
-4 -8 2
2 -1 999

输出样例:

1022 9

编译器

NO_COMPILER

代码

#include<bits/stdc++.h> 
#define int long long
using namespace std;

int n, c;
int ans, cnt;
double a, b;

int gcdd(int a, int b){
	if(b==0) return a;
	else return gcd(b, a%b);
}

struct node{
	int x;
	int y;
	double dist;
	int p;
}g[100005];

bool cmp(node x, node y){
	if(x.x != y.x) return x.x < y.x;
	else{
		if(x.y != y.y) return x.y < y.y;
		else if(x.dist != y.dist) return x.dist < y.dist;
	}
}

signed main(){
	cin>>n;
	
	for(int i = 1; i<=n; ++i){
		scanf("%lf %lf %lld", &a, &b, &c);  //lf?f?
		g[i].dist = a*a + b*b;
		if(a && b){
			int chu = gcdd(abs(a),abs(b));
			g[i].x = a/chu;
			g[i].y = b/chu;
		}
		if(a==0){
			g[i].x = 0;
			if(b>0) g[i].y = 1;
			else g[i].y = -1;
		}
		if(b==0){
			if(a>0) g[i].x = 1;
			else g[i].x = -1;
			g[i].y = 0;
		}
		g[i].p = c;
		ans += c;
	}
	
	sort(g+1, g+1+n, cmp);
	cnt = n;
	for(int i = 2; i<=n; ++i){
//		cout<<g[i].dir<<" "<<g[i].k<<" "<<g[i].p<<endl;
		if(g[i-1].x == g[i].x && g[i-1].y == g[i].y && g[i-1].p == 1 && g[i].p == 1) cnt--; 
	}
	
	cout<<ans<<" "<<cnt;
    return 0;
}

编译器输出

a.cpp: In function ‘bool cmp(node, node)’:
a.cpp:27:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
a.cpp: In function ‘int main()’:
a.cpp:33:8: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
   scanf("%lf %lf %lld", &a, &b, &c);  //lf?f?
   ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
测试点结果测试点得分耗时内存
0答案正确124.00 ms596 KB
1答案正确14.00 ms452 KB
2答案正确14.00 ms456 KB
3答案正确284.00 ms6212 KB
4答案正确252.00 ms5308 KB
5答案正确177.00 ms6024 KB
6答案正确679.00 ms5812 KB

评测结果 答案正确 (25 分)

7-3 打怪升级 (25分)

很多游戏都有打怪升级的环节,玩家需要打败一系列怪兽去赢取成就和徽章。这里我们考虑一种简单的打怪升级游戏,游戏规则是,给定有 N 个堡垒的地图,堡垒之间有道路相连,每条道路上有一只怪兽把守。怪兽本身有能量,手里的武器有价值。打败怪兽需要的能量等于怪兽本身的能量,而怪兽一旦被打败,武器就归玩家所有 —— 当然缴获的武器价值越高,玩家就越开心。

你的任务有两件:

    1. 帮助玩家确定一个最合算的空降位置,即空降到地图中的某个堡垒,使得玩家从这个空降点出发,到攻下最难攻克(即耗费能量最多)的那个堡垒所需要的能量最小;
    1. 从这个空降点出发,帮助玩家找到攻克任意一个其想要攻克的堡垒的最省能量的路径。如果这种路径不唯一,则选择沿途缴获武器总价值最高的解,题目保证这种解是唯一的。

输入格式:

输入第一行给出两个正整数 N (≤1000) 和 M,其中 N 是堡垒总数,M 是怪兽总数。为简单起见,我们将堡垒从 1 到 N 编号。随后 M 行,第 i 行给出了第 i 只怪兽的信息,格式如下:

B1 B2 怪兽能量 武器价值

其中 B1 和 B2 是怪兽把守的道路两端的堡垒编号。题目保证每对堡垒之间只有一只怪兽把守,并且 怪兽能量 和 武器价值 都是不超过 100 的正整数。

再后面是一个正整数 K(≤N)和玩家想要攻克的 K 个目标堡垒的编号。

输出格式:

首先在一行中输出玩家空降的堡垒编号 B0。如果有多种可能,则输出编号最小的那个。

随后依次为玩家想要攻克的每个堡垒 B 推荐最省能量的攻克路径,并列出需要耗费的能量值和沿途缴获武器的总价值。注意如果最省力的路径不唯一,则选择沿途缴获武器总价值最高的解。格式为:

B0->途经堡垒1->...->B
总耗费能量 武器总价值

输入样例:

6 12
1 2 10 5
2 3 16 20
3 1 4 2
2 4 20 22
4 5 2 2
5 3 12 6
4 6 8 5
6 5 10 5
6 1 20 25
1 5 8 5
2 5 2 1
2 6 8 5
4
2 3 6 5

输出样例:

5
5->2
2 1
5->1->3
12 7
5->4->6
10 7
5
0 0

编译器

NO_COMPILER

代码

#include<bits/stdc++.h> 
using namespace std;
 
int n, m, a, b, c, d, q, p;
int f[1005][1005];
 
const int N = 2000000;
int ne[N], w[N], ww[N], e[N], h[N], idx, dist[1005];
bool st[1005];
 
struct node{
	int distance, power, name;
};
 
struct cmp{
	bool operator() (node x, node y){
		if(x.distance != y.distance) return x.distance > y.distance;
		else{
			if(x.power != y.power) return x.power < y.power;
			else return x.name < y.name;
		} 
	}
}; 
 
int pre[1005];//难点1
int pw[1005];//难点2 
 
void add(int a, int b, int c, int d){
	e[idx] = b, w[idx] = c, ww[idx] = d, ne[idx] = h[a], h[a] = idx++;
}
 
void dijk(int s){
	priority_queue<node, vector<node>, cmp> heap;
	heap.push({0, 0, s});
	dist[s] = 0;
	while(heap.size()){
		node head = heap.top();
		heap.pop();
		int ver = head.name, distance = head.distance, power = head.power;
		if(st[ver]) continue;
		st[ver] = 1;
		
		for(int i = h[ver]; i!=-1; i = ne[i]){
			int j = e[i];
			if(distance + w[i] < dist[j]){
				pre[j] = ver;
				dist[j] = distance + w[i];
				pw[j] = power + ww[i];
				heap.push({dist[j], pw[j], j});
			}
			else if(distance + w[i] == dist[j]){
				if(power + ww[i] > pw[j]){
					pre[j] = ver;
					dist[j] = distance + w[i];
					pw[j] = power + ww[i];
					heap.push({dist[j], pw[j], j});
				}
			}
		}
	}
//	cout<<"debug";
}
 
int main(){
	memset(h, -1, sizeof h);
	memset(dist, 127, sizeof dist);
	
	cin>>n>>m;
	memset(f, 63, sizeof f);
	for(int i = 1; i<=m; ++i){
		cin>>a>>b>>c>>d;
		f[a][b] = c;
		f[b][a] = c;
		add(a,b,c,d);
		add(b,a,c,d);
	}
 
	for(int k = 1; k<=n; ++k)
		for(int i = 1; i<=n; ++i)
			for(int j = 1; j<=n; ++j)
				f[i][j] = min(f[i][j], f[i][k] + f[k][j]);
 
	int ans1 = 0;
	int ans1max = 100000000;
	for(int i = 1; i<=n; ++i){
		int curmax = 0;
		for(int j = 1; j<=n; ++j){
			curmax = max(curmax, f[i][j]);
		}
		if(curmax<ans1max){
			ans1 = i;
			ans1max = curmax;
		}
	}
	cout<<ans1<<endl;
 
	dijk(ans1);
	cin>>q;
	for(int i = 1; i<=q; ++i){
		cin>>p;
		vector<int> ans2;
		
		int cur = p;
		while(cur!=ans1){
			ans2.push_back(cur);
			cur = pre[cur];
		}
		ans2.push_back(ans1);
		
		for(int i = ans2.size()-1; i>=0; --i){
			cout<<ans2[i];
			if(i!=0) cout<<"->";
		}
		cout<<"\n";		
		
		cout<<dist[p]<<" "<<pw[p]<<endl;
	}
 
    return 0;
}

编译器输出

 
测试点结果测试点得分耗时内存
0答案正确1312.00 ms12348 KB
1答案正确512.00 ms12228 KB
2答案正确112.00 ms12352 KB
3答案正确2813.00 ms12392 KB
4答案正确41154.00 ms30820 KB

评测结果 答案正确 (25 分)

7-4 疫情防控 (30分)

疫情尚未结束,严防疫情反复。为了做好疫情防控工作,国内设置了地区风险等级,对于中高风险地区的人员采取限制移动、居家隔离等手段。

为了研究疫情防控对于跨地区交通运输的影响,假设现在有 N 个机场,M 条航线,每天都会新增一个防控地区,一个防控地区会导致一个机场无法正常运作,航线也自然无法正常运行,每天会有 Qi​ 对旅客从 Xi​ 机场前往 Yi​ 机场,请计算有多少对旅客会受到影响无法完成行程。

旅客只要能直达或通过若干次中转,且乘坐的所有航线的出发和到达机场都正常运作,即视作可完成行程。

输入格式:

输入第一行是三个整数 N,M,D (1≤N≤5×104, 1≤M≤2×105, 1≤D≤103), 表示机场数、航线数以及新增防控地区的天数。

接下来首先有 M 行,每行给出空格分隔的两个数字 A 和 B,表示编号为 A 和 B 的机场之间有一条航线。航线是双向的,机场编号从 1 到 N。

然后是 D 块输入,每块输入内第一行为空格分隔的两个整数 C 和 Q (1≤Q≤103),表示新增机场编号为 C 所在的城市为防控地区,今天有 Q 段行程。数据保证新增的城市之前一定不是防控地区。

接下来的 Q 行,每行是空格分隔的两个数字 X 和 Y,表示编号为 X 和 Y 的机场的一段行程。行程有可能包括之前就已经成为防控地区的城市。

输出格式:

对于每天的询问,请在一行中输出在新增了一个防控地区后当天的行程有多少不能成行。

输入样例:

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

输出样例:

1
2
3

编译器

NO_COMPILER

代码

#include<bits/stdc++.h> 
using namespace std;
 
bool openn[400005];//第i个地点是开通的 
int n, m, d, a[400005], b[400005];//a b放的是地点 
int c[400005], q[400005], fa[400005], ans[1005];
int xx[1005][1005], yy[1005][1005];  //第i天第j次询问的地点的编号 
vector<int> nextt[50005];
 
int findd(int x){
	if(fa[x] == x) return x;
	else return fa[x] = findd(fa[x]);
}
 
int main(){
	cin>>n>>m>>d;//机场数、航线数以及新增防控地区的天数 
	for(int i = 1; i<=n; ++i) openn[i] = 1;
	for(int i = 1; i<=m; ++i){
		cin>>a[i]>>b[i];
		nextt[a[i]].push_back(b[i]);
		nextt[b[i]].push_back(a[i]);
	}
	
	for(int i = 1; i<=d; ++i){
		cin>>c[i]>>q[i];
		for(int j = 1; j<=q[i]; ++j)
			cin>>xx[i][j]>>yy[i][j];
		//close
		openn[c[i]] = 0;
	}
	
	for(int k = 1; k<=n; ++k) fa[k] = k;
	
	//先连一次啊,别漏了啊
	for(int i = 1; i<=m; ++i){
		if(openn[a[i]] && openn[b[i]]) fa[findd(a[i])] = findd(b[i]);
	} 
	
	for(int i = d; i>=1; --i){
		if(d!=i){
			//open && unite
			int p1 = c[i+1];
			openn[p1] = 1;  //open
			for(int j = 0; j<nextt[p1].size(); ++j){
				int p2 = nextt[p1][j];
//				cout<<"debug:"<<p1<<" "<<p2<<endl; 
				if( openn[ p2 ] ) 
					fa[findd(p1)] = findd(p2);
			}
		}
 
		//check
		int temp = 0;
		for(int j = 1; j<=q[i]; ++j){
			if( findd(xx[i][j]) != findd(yy[i][j]) ) temp++;
		}
		ans[i] = temp;
	}
	for(int i = 1; i<=d; ++i) cout<<ans[i]<<endl;
 
    return 0;
}

编译器输出

a.cpp: In function ‘int main()’:
a.cpp:48:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    for(int j = 0; j<nextt[p1].size(); ++j){
                   ~^~~~~~~~~~~~~~~~~
测试点结果测试点得分耗时内存
0答案正确155.00 ms1592 KB
1答案正确15.00 ms1600 KB
2答案正确15.00 ms1720 KB
3答案正确512.00 ms2752 KB
4答案正确8553.00 ms28332 KB

评测结果 答案正确 (30 分)

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

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

相关文章

图像分类论文阅读

该论文通过结合VGG-19和VIT模型,实现乳腺超声图像的分类Breast Ultrasound Images Dataset | Kaggle PyTorch VGG19复现代码 # VGG19.py import torch import torch.nn as nnclass Conv(nn.Module):def __init__(self, in_channels, out_channels, kernel_size=1, stride=1,…

面向 “大模型” 的未来服务架构设计

文章目录 大模型热潮大模型落地服务设计 or 重构未来的服务架构微服务化分层化 大模型应用架构架构设计图架构 Demo 实现 小结附录 大模型热潮 今年的互联网赛道中 “顶流” 非大模型莫属。 科技部新一代人工智能发展研究中心 5 月底发布的《中国人工智能大模型地图研究报告》显…

极米H6 4K光学变焦版 打造全新4K观影体验

随着时代的发展&#xff0c;拥有家用智能投影的家庭也越来越多了。当下许多家用投影仪都搭载了智能系统&#xff0c;内含大量片源。另外&#xff0c;投影仪还可以通过不同接口接入不同的设备&#xff0c;如游戏机、电脑、U盘等。只需要一台投影便可以实现在线追剧、听歌、游戏、…

ZER-10-EP-L350C-224叠加式比例溢流阀放大器

ZER-06-EP-L105C-224、ZER-06-EP-L210C-224、ZER-06-EP-L350C-224、ZER-10-EP-L105C-224、ZER-10-EP-L210C-224、ZER-10-EP-L350C-224叠加式比例溢流阀由主阀体和溢流阀、阀插件、佰业比例放大器组成&#xff0c;标准叠加安装接口&#xff0c;与换向阀等配合使用&#xff0c;便…

【ELK企业级日志分析系统】安装与部署ELK详解

ELK 企业级日志分析系统 1.ELK概述1.1 ELK简介1.2 可以添加的其它组件1.3 filebeat结合logstash带来好处1.4 为什么要使用ELK?1.5 完整日志系统基本特征 2.ELK的工作原理3.部署ELK集群3.1 安装Elasticsearch3.2 安装Elasticsearch-head插件3.3 安装ELK Logstash3.4 安装ELK Ki…

HO49-二叉树的最近公共祖先

leetcode原题链接&#xff1a;二叉树的最近公共祖先 题目描述 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为&#xff1a;“对于有根树 T 的两个节点 p、q&#xff0c;最近公共祖先表示为一个节点 x&#xff0c;满足 x 是 p、q 的…

Linux中的GO更新与冲突

发行版&#xff1a;CentOS GO更新 在使用go get安装某模块时&#xff0c;报错&#xff1a; ../../pkg/mod/golang.org/x/sysv0.5.0/unix/syscall.go:83:16: undefined: unsafe.Slice ../../pkg/mod/golang.org/x/sysv0.5.0/unix/syscall_linux.go:2271:9: undefined: unsafe.…

Verilog学习笔记5:简单的加法器

代码&#xff1a; //加法器 timescale 1ns/10ps module add( a, b, y ); input a; input b; output[1:0] y;assign yab;endmodule //testbench module add_tb; reg a; reg b; wire[1:0] y;add add(.a(a),.b(b),.y(y));initial begina<0;b<0;#10 a<1;b<0;#10 a&l…

SpringMVC 中的视图如何渲染模型数据

SpringMVC 中的视图如何渲染模型数据 SpringMVC 是一个基于 Spring 框架的 Web 框架&#xff0c;它提供了一种方便的方式来处理 HTTP 请求和响应。在 SpringMVC 中&#xff0c;视图是用来渲染模型数据的组件&#xff0c;它们负责将模型数据转换为 HTML、JSON、XML 等格式的响应…

风沙文字粒子制作

目录 一、导入素材 二、合成介绍 三、文字合成新建和制作 四、文字动画合成新建和制作 五、风沙文字消失合成的新建和制作 六、风沙文字消失合成制作完成 七、制作风沙文字出现合成 风沙文字粒子效果如下&#xff1a; AE模板风沙文字粒子宣传片片头片尾 一、导入素材 打…

Windows server 2012服务器远程桌面登录时出现错误提示:“由于没有远程桌面授权服务器可以提供许可证,远程会话被中断

简单粗暴&#xff1a; Windows server 2012服务器远程桌面登录时出现错误提示&#xff1a;“由于没有远程桌面授权服务器可以提供许可证&#xff0c;远程会话被中断。请跟服务器管理员联系 使用 mstsc /admin /v:目标ip 来强制登录服务器&#xff0c;但只能是管理员身份…

最简单的大屏可视化解决方案---autofit.js

在工作开发当中&#xff0c;我们避免不了要去做大屏。那么做大屏其实最难的点和最核心的问题就是适配&#xff0c; 下面为大家介绍最好用的大屏解决方案——autofit.js。 “一行代码搞定&#xff0c;开袋即食&#xff01;&#xff01;&#xff01;” 效果图展示&#xff0c;…

第4章-面向对象编程(上)

1. 面向过程与面向对象 面向过程 面向对象 2. 面向对象的思想概述 类(Class)和对象(Object)是面向对象的核心概念 类是对一类事物的描述&#xff0c;是抽象的、概念上的定义对象是实际存在的该类事物的每个个体&#xff0c;因而也称为实例(instance)属性&#xff1a;对应类…

Microsoft Remote Desktop for mac安装教程

适用于Mac的Microsoft远程桌面测试版&#xff01;Microsoft Remote Desktop Beta for Mac是一种远程工具&#xff0c;允许用户从Mac远程访问基于Windows的计算机。使用此工具&#xff0c;用户可以随时随地使用Mac连接到远程桌面、应用程序和资源。 Microsoft Remote Desktop B…

分享一下快速搭建IntelliJ IDEA开发环境的完整教程

目录 第一步&#xff1a;安装jdk&#xff0c;推荐安装jdk1.8 第二步&#xff1a;安装Maven 第三步&#xff1a;配置环境变量 1、jdk环境变量配置 2、maven环境变量配置 第四步&#xff1a;修改Maven仓库的地址 第五步&#xff1a;修改idea设置 IntelliJ IDEA是我们Java程…

云原生之深入解析K8S 1.24的高可用环境部署

一、Kubernetes 1.24 版本发布及重磅改动 2022 年 5 月 3 日&#xff0c;Kubernetes 1.24 正式发布&#xff0c;在新版本中&#xff0c;可以看到 Kubernetes 作为容器编排的事实标准&#xff0c;正愈发变得成熟&#xff0c;有 12 项功能都更新到了稳定版本&#xff0c;同时引入…

如何在windows上安装Openssl环境

首先在链接下载openssl安装版 openssl windows 我选择的是肥一点的版本 然后就是按向导步骤安装。 安装完后&#xff0c;首先要先设置下环境变量 我安装的路径是 C:\Program Files\OpenSSL-Win64\bin接下来&#xff0c;我以我的windows11为例说明&#xff0c; 在任务栏开始…

快使用双截棍 | 低码之数据模型 元服务开发的奇门武器

中国武术博大精深&#xff0c;刀枪棍棒层出不穷。从中国古代流传下来的一件奇门武器&#xff0c;软中带硬&#xff0c;柔中有钢&#xff0c;名叫双节棍&#xff0c;又名双截棍。双截棍短小精悍&#xff0c;携带方便&#xff0c;普通人也可以打出160斤以上的力道&#xff0c;威力…

【项目一】IO库对比、文件操作

文章目录 1.17 标准C库IO函数和Linux系统IO函数对比1.18 虚拟地址空间1.19 文件描述符1.20 open打开文件1.20 open创建文件1.22 read、write函数1.23 lseek函数1.24 stat、lstat函数1.25 使用stat函数模拟实现 ls -l 命令1.26 文件属性操作函数1.27 目录操作函数1.28 目录遍历函…

linux 乱码

在 Linux 中遇到乱码问题通常是由于字符编码不正确导致的。以下是几种常见的乱码情况以及相应的解决方法&#xff1a; 1、终端乱码&#xff1a;如果在终端中出现了乱码&#xff0c;可以尝试以下方法来解决&#xff1a; 检查终端的字符编码设置&#xff1a;确保终端的字符编码…