2024中国大学生算法设计超级联赛(2)

news2024/9/28 11:22:29

🚀欢迎来到本文🚀
🍉个人简介:陈童学哦,彩笔ACMer一枚。
🏀所属专栏:杭电多校集训
本文用于记录回顾总结解题思路便于加深理解。

📢📢📢传送门

  • A - 鸡爪
    • 解题思路
    • AC代码
  • F - 传奇勇士小凯
    • 解题思路
    • AC代码
  • G - URL划分
    • 解题思路
    • AC代码
  • J - 女神的睿智
    • 解题思路
    • AC代码
  • K - 在 A 里面找有 C 的 B
    • 解题思路
    • AC代码

A - 鸡爪

Problem Description

在这里插入图片描述
一个鸡爪是由 4 个部分组成,一个点与三个与该点相邻的边,三个边的另一端点被认为不在鸡爪中。

一个图上的鸡爪数是该图最多成形成几个鸡爪,使得图上每个点与边最多一个鸡爪中(注意上文点与边是否在鸡爪中的定义)。

现在给你 n 条边,你可以使用任意个点,构造一个简单无向图(没有自环重边),要求最大化该图的鸡爪数,并输出n条边的两端点。如果有多解,请让输出的 2n 个数字在行优先遍历的顺序下,字典序最小

字典序:序列A的字典序小于序列B,当且仅当存在i (1≤i≤n),使得A[i]<B[i],且对任意的j (1≤j<i),A[j]=B[j]。

在这里插入图片描述
Input

第一行为一个整数 T ( 1 ≤ T ≤ 1 0 4 ) ,表示测试样例个数。 第一行为一个整数 T(1≤T≤10^4) ,表示测试样例个数。 第一行为一个整数T(1T104),表示测试样例个数。

每个样例一行,为一个整数 n ( 1 ≤ n ≤ 1 0 4 ) 。保证所有样例的 n 的 ≤ 1 0 4 。 每个样例一行,为一个整数 n(1≤n≤10^4)。保证所有样例的n的≤10^4。 每个样例一行,为一个整数n(1n104)。保证所有样例的n104

在这里插入图片描述
Output

每个样例输出 n 行,每行两个正整数,表示该无向边连接的两个顶点(顶点从 1 开始编号) 每个样例输出 n 行,每行两个正整数,表示该无向边连接的两个顶点(顶点从 1 开始编号) 每个样例输出n行,每行两个正整数,表示该无向边连接的两个顶点(顶点从1开始编号)

解题思路

构造题(不会构造 ^ __ ^)。要使得构造的简单无向图的鸡爪数尽可能的多,而一个鸡爪由一个点和三条相邻边且只能使用一次。我们可以考虑倒着构造每个点,且除了第1个点外每个点需要与没有用过且与自身不相等的另外3个点连边。第一个点的与3 + n % 3 个点相连。

AC代码

#include<bits/stdc++.h>
#define look(x) cout << #x << " ==  " << x << "\n"
using namespace std;
using i64 = long long;
const int N = 2e5 + 10;
const int MOD1 = 1e9 + 7;
const int MOD2 = 998244353;

void solve(){
	int n;
	cin >> n;
	//需要跑几轮
	int m = n / 3;
	//每个点都连3个点
	vector<int> a(m + 1,3);
	//特判,不足3条边的情况
	if(n <= 2){
		m = 1;
		a.resize(2,0);
	}
	//第一个点还需要连的n % 3个点
	a[1] += n % 3;
	//存答案
	set<pair<int,int>> ans;
	//倒着从大到小开始
	for(int i = m;i >= 1;i --){
		//遍历出与i相连的3个点
		for(int j = 1;a[i] > 0;j ++){
			//不与自身相等且没有出现过
			if(i != j && !ans.count(minmax(i,j))){
				ans.insert(minmax(i,j));
				//点数减1
				a[i] --;
			}
		}
	}
	for(auto [x,y] : ans){
		cout << x << " " << y << "\n";
	}
}

int main(){	

	ios::sync_with_stdio(false);
	cin.tie(nullptr);

	
	int t = 1;
	cin >> t;

	while(t --){
		solve();
	}
	
	return 0;
}

F - 传奇勇士小凯

Problem Description

传说在遥远的魔法大陆有着一个村庄叫做卡卡奇里奇,这里有n座房屋,n−1条道路,保证了任意两座房屋之间都可以通过道路相互可达。这里环境优美,居民幸福地生活着。

但是有一天晚上,原本平静的村庄突然受到一不明寄生生命体的袭击,奇怪的怪物绑架了所有居民,并控制了所有房屋。凌晨时分,在外游历的勇士小凯收到了卡卡奇里奇国王的召唤来到了卡卡奇里奇,奉命消灭所有怪物,解救整个村庄。

由于有人工智能Fairy的存在,卡卡奇里奇国王能够知道小凯和每个房屋的怪物的较量中的获胜概率是多少。在一场小凯和第i个房屋的怪物较量中,小凯有pi15的概率获得胜利,成功消灭第i个房屋的所有怪物,同时小凯有1−pi15的概率失败,那么第i个房屋的怪物会依旧存在,只能之后再挑战。由于没有被消灭怪物会在每个晚上恢复元气,所以每一天小凯对第i个房屋的怪物的战斗胜率是固定的。

经过了长途跋涉之后,小凯来到了卡卡奇里奇的1号房屋开始了战斗。每一天白天,小凯都会对当前他所在的房屋的怪物发起挑战,如果成功那么他会询问卡卡奇里奇国王然后在国王的建议之下选择一个与当前房屋相邻的(有直接的道路相连的)还存在怪物的房屋前进(但是第二天才能对该房屋的怪物进行挑战),如果不存在这样的房屋,那么喜欢摸鱼的小凯便会离开这个村庄去摸鱼。如果挑战失败,那么小凯会在这个房屋门口休息一个晚上,等到下一天继续发起挑战。

国王希望摸鱼的小凯在村庄呆的久一点,所以他想问你在他的控制之下,小凯最多期望在村庄里停留多少天?请你以最简分数的形式告诉他这个答案。

在这里插入图片描述

Input

第一行一个整数 T ( 1 ≤ T ≤ 20 ) 表示数据组数。 第一行一个整数T (1≤T≤20)表示数据组数。 第一行一个整数T(1T20)表示数据组数。

对于每组数据,第一行有一个整数 n ( 1 ≤ n ≤ 1 0 5 ) ,表示房屋的数量。 对于每组数据,第一行有一个整数n (1≤n≤10^5),表示房屋的数量。 对于每组数据,第一行有一个整数n(1n105),表示房屋的数量。

接下来有n−1行,每行两个整数u,v,表示村庄的一条道路,保证没有重边,没有自环。(1≤u,v≤n,u≠v)​

接下来有 n 个整数,第 i 个整数 p i ( 1 ≤ p i ≤ 15 ) 表示小凯打倒第 i 个村庄的怪物的概率为 p i 15 。 接下来有n个整数,第i个整数p_i (1≤p_i≤15)表示小凯打倒第i个村庄的怪物的概率为p_i15。 接下来有n个整数,第i个整数pi(1pi15)表示小凯打倒第i个村庄的怪物的概率为pi15

数据保证 ∑ n ≤ 5 ⋅ 1 0 5 数据保证∑n≤5⋅10^5 数据保证n5105

在这里插入图片描述

Output

对于每组数据,输出一个最简分数( A / B , A 与 B 互质)表示小凯最多期望在村庄里停留多少天。数据保证答案不会为 0 。 对于每组数据,输出一个最简分数(A/B,A与B互质)表示小凯最多期望在村庄里停留多少天。数据保证答案不会为0。 对于每组数据,输出一个最简分数(A/BAB互质)表示小凯最多期望在村庄里停留多少天。数据保证答案不会为0

在这里插入图片描述

解题思路

要我们求期望,首先如果做一件事成功的概率为 P P P,那么这件事成功的期望就是 1 / P 1/P 1/P,而这里小凯有 p i / 15 p_i/15 pi/15的概率获得胜利,那么期望就是 15 / p i 15/p_i 15/pi/。
然后我们可以先求每个点的期望,然后dfs从1开始遍历图求最大的期望天数,但是这里的期望期望是个分数,为了方便计算我们可以考虑通分,因为 p i p_i pi为1到15,所以通分的分母就应该是1到15的最小公倍数。
然后我们可以在分母相同的情况下求出每个点的分子,最后dfs累加答案求最大期望值。
最后再求个分子和分母的gcd然后输出最简分数形式。

AC代码

#include<bits/stdc++.h>
#define int long long
#define look(x) cout << #x << " ==  " << x << "\n"
using namespace std;
using i64 = long long;
const int N = 2e5 + 10;
const int MOD1 = 1e9 + 7;
const int MOD2 = 998244353;
vector<int> g[N];
bool st[N];
int f[N];
int k = 1;
int ans = 0;
int gcd(int x,int y){
	return y ? gcd(y,x % y) : x;
}
int lcm(int x,int y){
	return x * y / gcd(x,y);
}
void dfs(int i,int x){
	ans = max(ans,x);
	for(auto y : g[i]){
		if(st[y]){
			continue;
		}
		st[i] = true;
		dfs(y,x + f[y]);
		st[i] = false;
	}

}
void solve(){
	int n;
	cin >> n;
	for(int i = 1;i <= n;i ++){
		g[i].clear();
		st[i] = false;
	}
	for(int i = 1;i <= n - 1;i ++){
		int u,v;
		cin >> u >> v;
		g[u].push_back(v);
		g[v].push_back(u);
	}
	vector<int> p(n + 1);
	//求在相同分母下每个点的分子
	for(int i = 1;i <= n;i ++){
		cin >> p[i];
		f[i] = 15 * k / p[i];
	}
	//dfs跑图
	dfs(1,f[1]);
	//求最大分子之和与分母的gcd
	int res = gcd(ans,k);
	cout << ans / res << "/" << k / res << "\n";
	ans = 0;
}

signed main(){	

	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	for(int i = 1;i <= 15;i ++){
		k = lcm(k,i);
	}
//	look(k);
	int t = 1;
	cin >> t;

	while(t --){
		solve();
	}
	
	return 0;
}

G - URL划分

Problem Description

给定一个 URL 字符串 S,形如 s3://hdu-oj-bucket/problem=1/type=data/

字符串的格式规定具体如下:

  1. 首先是指定使用的传输协议,例如 http, ftp, s3,保证传输协议只由小写英文字母和数字构成。之后紧跟 ://

  2. 接下来会紧跟一个字符串为其网络位置,以 / 为终止,在给定的例子中为 hdu-oj-bucket

  3. 在网络位置之后的路径字符串,每个子结构都会紧跟一个 /,在给定的例子中传输协议后面可以看成是 problem=1/, type=data/ 两个子结构组成的。假如说出现了 / 可以认为一定发生了子结构的切分。保证每个子结构中只会用到小写英文字母,数字,-=/

  4. 在路径字符串的子结构中,如果存在形如 A=B/ 的子结构,那就意味着在路径中声明了一些环境变量的值。在给定的例子中我们指定了 problem=1, type=data。为了方便解析我们保证 A,B 只由小写英文字母和数字构成,同时保证 A 是一个合法的变量命名。

对于一个确定的 URL 字符串 S,小 T 希望你帮忙解析这个字符串,输出这个 URL 所使用的传输协议网络位置,以及其在路径字符串子结构中定义的环境变量

在这里插入图片描述
Input

第一行输入一个正整数 T (1≤T≤100),表示总共有 T 组数据。

对于每一组测试数据,读入一个 URL 字符串 S (1<|S|≤200)。

具体格式满足题面中要求,保证该字符串一定合法。

在这里插入图片描述
Output

对于每一组测试数据,首先输出一行一个字符串表示,所使用的传输协议

接着输出一行一个字符串表示网络位置

接下来对于每一个声明的环境变量,输出 A=B,其中 A 为环境变量名,B 为该环境变量的值。

在这里插入图片描述

解题思路

模拟题,这题就是让我们把字符串解析后输出传输协议,网络位置,以及其在路径字符串子结构中定义的环境变量即可。需要注意的是环境变量里必须有=才输出,否则不不需要输出(我就被这个地方单杀了,鉴定为题目理解不到位。)

AC代码

#include<bits/stdc++.h>
#define look(x) cout << #x << " ==  " << x << "\n"
using namespace std;
using i64 = long long;
const int N = 2e5 + 10;
const int MOD1 = 1e9 + 7;
const int MOD2 = 998244353;

void solve(){
	string s;
	cin >> s;
	string res = "";
	vector<string> ans;
	for(int i = 0;i < s.size();i ++){
		if(s[i] == '/' || s[i] == ':'){
			ans.push_back(res);
			res = "";
		}else{
			res += s[i];
		}
	}
	int k = 0;
	for(auto x : ans){
		if(x != "" && k >= 2 && x.find('=') != -1){
			cout << x << "\n";
		}else if(x != "" && k < 2){
			cout << x << "\n";
			k ++;
		}
		
	}
}

int main(){	

	ios::sync_with_stdio(false);
	cin.tie(nullptr);

	
	int t = 1;
	cin >> t;

	while(t --){
		solve();
	}
	
	return 0;
}

J - 女神的睿智

Problem Description

Alice在玩一款名叫《闪耀!优俊少女》的游戏,在这个游戏中,有一个重要的道具叫做女神的睿智。

为了获得女神的睿智,需要按顺序将8个知识碎片两两合成为结晶,再将4个结晶合成成为大结晶,最后将2个大结晶合成得到女神的睿智。

女神的睿智有着三种颜色,知识碎片和结晶也有着三种颜色。

在合成的碎片颜色相同时,结晶的颜色与碎片相同,在颜色不同时,结晶的颜色与左侧碎片相同。

在合成的结晶颜色相同时,大结晶的颜色与结晶相同,在颜色不同时,大结晶的颜色与左侧结晶相同。

在合成的大结晶颜色相同时,女神的睿智的颜色与大结晶相同,在颜色不同时,我们比较两种颜色的碎片在女神的睿智中出现的数量,选择出现数量多的碎片的颜色作为女神的睿智的颜色,碎片数量相同时,随机选择一个大结晶颜色作为女神的睿智的颜色。

Alice想要知道最后能获得的女神的睿智的颜色。

在这里插入图片描述

Input

第一行包含一个整数T(1≤T≤10000),表示数据组数。

接下来的T行,每行8个字符(“R”,“G”,“B”),表示每组数据的碎片颜色。

在这里插入图片描述
Output

一共T行,每行一个字符,表示最后获得的女神的睿智的颜色,如果不能确定,输出"N"。

在这里插入图片描述

解题思路

模拟。因为每行字符串只有8个字符,所以我们可以直接从左往右按顺序合并就OK了,但其实稍微观察我们可以发现,最后合成的两个大结晶的颜色其实就是第1个和第5个字符串,然后我们判断最后合并后剩下的两个字符是否相等,相等就直接输出,否则输出次数出现多的那个。

AC代码

#include<bits/stdc++.h>
#define look(x) cout << #x << " ==  " << x << "\n"
using namespace std;
using i64 = long long;
const int N = 2e5 + 10;
const int MOD1 = 1e9 + 7;
const int MOD2 = 998244353;

void solve(){
	string s;
	cin >> s;
	s = '?' + s;
	map<char,int> mp;
	string res = "";
	for(int i = 1;i <= 8;i ++){
		mp[s[i]] ++;
	}
	for(int i = 1;i <= 8;i += 2){
		res += s[i];		
	}
	s = '?' + res;
	res = "";
	for(int i = 1;i <= 4;i += 2){
		res += s[i];
	}
	s = res;
//	look(s);
	if(s[0] == s[1]){
		cout << s[0] << "\n";
		return;
	}
	if(mp[s[0]] == mp[s[1]]){
		cout << "N\n";
	}else{
		if(mp[s[0]] > mp[s[1]]){
			cout << s[0] << "\n";
		}else{
			cout << s[1] << "\n";
		}
	}
}

int main(){	

	ios::sync_with_stdio(false);
	cin.tie(nullptr);

	
	int t = 1;
	cin >> t;

	while(t --){
		solve();
	}
	
	return 0;
}

K - 在 A 里面找有 C 的 B

Problem Description

小 T 最近上班碰到了一个问题,怎么样才能用 Vscode 快速的在 A 里面找有 C 的 B

他想要在代码库的一个文件 A 中,找到有哪些在 A 中使用到的函数 B 间接地调用了小 T 所指定的语句 C。由于小 T 的需求比较简单,所以这里不考虑间接调用的函数中的调用关系,只需要看 B 的声明中 B′ 是否包含 C 即可。

手动处理这个问题还是有相当大的重复工作量的,但是你是一个经验丰富的SQL BOY/GIRL,你对小 T 说:“闹麻了,这不就是把 A 里面包含的 B,和包含 C 的 B JOIN 一下就行了吗。”

虽然是的,但是这两张表哪来呢?

为了圆你吹下的牛,现在你需要手写一个字符串解析器,用来在 A 里面找有 C 的 B

接下来我们会给定一个长字符串 A,一个短字符串 C,以及 n 个短字符串 {Bn},以及其声明 {B′n}。

我们定义一个字符串 S 在字符串 T 中当且仅当存在一个 T 的子串 p 满足:S=p。

在这里插入图片描述
Input

第一行输入一个正整数 T (1≤T≤10),表示总共有 T 组数据。

对于每一组测试数据,首先是一个正整数 n (1≤n≤105)。

接下来是两个由小写字母构成的字符串 A,C (1≤|A|≤105,1≤|C|≤104)

接下来 n 行,每行读入两个由小写字母构成的字符串 Bi,B′i (1≤|Bi|≤104,1≤|B′i|≤105)

每组数据中有额外限制如下:∑|Bi|≤105,∑|B′i|≤5×105

在这里插入图片描述
Output

对于每一组测试数据,输出一行整数 i 满足 Bi 在 A 中,同时 B′i 中包含 C,相邻的整数之间用空格分割,注意行末不保留空格

假如答案集合为空,则输出一个空行。

在这里插入图片描述

解题思路

好像是个AC自动机的模板题,还不是很熟悉AC自动机,先贴个代码。

AC代码

#include<bits/stdc++.h>
#define int long long
#define look(x) cout << #x << " ==  " << x << "\n"
using namespace std;
using i64 = long long;
const int N = 2e5 + 10;
const int MOD1 = 1e9 + 7;
const int MOD2 = 998244353;
int n,m,o;
int ne1[N],ne2[N],jk[N];
int v[N],in[N],idx,mp[N];
string s1,s2;
struct cs{
	int son[30],fail,flag,ans;
	void clear(){
		memset(son,0,sizeof(son));
		fail = flag = ans = 0;
	}
}tire[N];
queue<int> q;
void insert(string s,int num){
	int u = 1;
	for(int i = 0;s[i];i ++){
		int v = s[i] - 'a';
		if(!tire[u].son[v]){
			tire[u].son[v] = ++ idx;
		}
		u = tire[u].son[v];
	}
	if(!tire[u].flag){
		tire[u].flag = num;
	}
	mp[num] = tire[u].flag;
}
void getfail(){
	for(int i = 0;i < 26;i ++){
		tire[0].son[i] = 1;
	}
	q.push(1);
	while(!q.empty()){
		int u = q.front();
		q.pop();
		int Fail = tire[u].fail;
		for(int i = 0;i < 26;i ++){
			int v = tire[u].son[i];
			if(!v){
				tire[u].son[i] = tire[Fail].son[i];
				continue;
			}
			tire[v].fail = tire[Fail].son[i];
			in[tire[v].fail] ++;
			q.push(v);
		}
	}
}
void tp(){
	for(int i = 1;i <= idx;i ++){
		if(in[i] == 0){
			q.push(i);
		}
	}
	while(!q.empty()){
		int u = q.front();
		q.pop();
		v[tire[u].flag] = tire[u].ans;
		int v = tire[u].fail;
		in[v] --;
		tire[v].ans += tire[u].ans;
		if(in[v] == 0){
			q.push(v);
		}
	}
}
void query(string s){
	int u = 1,len = s.size();
	for(int i = 0;i < len;i ++){
		u = tire[u].son[s[i] - 'a'];
		tire[u].ans ++;
	}
}
void solve(){
	cin >> n;
	cin >> s1 >> s2;
	idx = 1;
	int l2 = s2.size();
	s2 = '?' + s2;
	for(int i = 2,j = 0;i <= l2;i ++){
		while(j && s2[i] != s2[j + 1]){
			j = ne2[j];
		}
		if(s2[i] == s2[j + 1]){
			j ++;
		}
		ne2[i] = j;
	}
	for(int i = 1;i <= n;i ++){
		jk[i] = 0;
		string a,b;
		cin >> a >> b;
		insert(a,i);
		int n2 = b.size();
		b = '?' + b;
		for(int ii = 1,j = 0;ii <= n2;ii ++){
			while(j && b[ii] != s2[j + 1]){
				j = ne2[j];
			}
			if(b[ii] == s2[j + 1]){
				j ++;
			}
			if(j == l2){
				jk[i] = 1;
				break;
			}
		}
	}
	getfail();
	query(s1);
	tp();
	for(int i = 1;i <= n;i ++){
		if(v[mp[i]] && jk[i]){
			cout << i << " ";
		}
	}
	cout << "\n";
	for(int i = 1;i <= idx;i ++){
		tire[i].clear();
	}
}

signed main(){	

	ios::sync_with_stdio(false);
	cin.tie(nullptr);

	int t = 1;
	cin >> t;

	while(t --){
		solve();
	}
	
	return 0;
}

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

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

相关文章

eclipse修改tomcat的Jre运行环境

1.双击tomcat 2.RuntimeEnvironment 3.选择

轨道式智能巡检机器人,助力综合管廊安全运维

1 引言 当前城市综合管廊建设已经成为世界范围内的发展趋势&#xff0c;2017年5月住建部、发改委联合发布《全国城市市政基础设施建设“十三五”规划》&#xff0c;截至2017年4月底国内地下综合管廊试点项目已开工建设687 km&#xff0c;建成廊体260 km&#xff0c;完成投资40…

redis的使用场景-热点数据缓存

1.什么是缓存&#xff1f; 把一些经常访问的数据放入缓存中&#xff0c;减少访问数据库的频率&#xff0c;减少数据库的压力&#xff0c;从而提高程序的性能。【内存中存储】 2.缓存的原理 通过上图可以看出程序首先访问缓存&#xff0c;如果缓存中有访问的数据会直接方会给客…

分布式系统常见软件架构模式

常见的分布式软件架构 Peer-to-Peer (P2P) PatternAPI Gateway PatternPub-Sub (Publish-Subscribe)Request-Response PatternEvent Sourcing PatternETL (Extract, Transform, Load) PatternBatching PatternStreaming Processing PatternOrchestration Pattern总结 先上个图&…

基于Golang+Vue3快速搭建的博客系统

WANLI 博客系统 项目介绍 基于vue3和gin框架开发的前后端分离个人博客系统&#xff0c;包含md格式的文本编辑展示&#xff0c;点赞评论收藏&#xff0c;新闻热点&#xff0c;匿名聊天室&#xff0c;文章搜索等功能。 项目在线访问&#xff1a;http://bloggo.chat/ 或 http:/…

Photos框架 - 自定义媒体资源选择器(数据部分)

引言 在iOS开发中&#xff0c;系统已经为我们提供了多种便捷的媒体资源选择方式&#xff0c;如UIImagePickerController和PHPickerViewController。这些方式不仅使用方便、界面友好&#xff0c;而且我们完全不需要担心性能和稳定性问题&#xff0c;因为它们是由系统提供的&…

基于扩散的生成模型的语音增强和去噪

第二章 目标说话人提取之《Speech Enhancement and Dereverberation with Diffusion-based Generative Models》 文章目录 前言一、任务二、动机三、挑战四、方法1.方法:基于分数的语音增强生成模型(sgmse)2.网络结构 五、实验评价1.数据集2.采样器设置和评价指标3.基线模型4.评…

godot新建项目及设置外部编辑器为vscode

一、新建项目 初次打开界面如下所示&#xff0c;点击取消按钮先关闭掉默认弹出的框 点击①新建弹出中间的弹窗②中填入项目的名称 ③中设置项目的存储路径&#xff0c;点击箭头所指浏览按钮&#xff0c;会弹出如下所示窗口 根据图中所示可以选择或新建自己的游戏存储路径&…

音视频开发之旅(85)- 图像分类-VGG模型解析

目录 1. VGG解决的问题 2. 网络结构和参数 3. pytorch搭建vgg 4.flower_photos分类任务实践 5.资料 一、VGG解决的问题 论文链接&#xff1a;https://arxiv.org/pdf/1409.1556 在VGG之前&#xff0c;大多数深度学习模型相对较浅&#xff0c;比如下面的AlexNet(5层卷积和3…

记录阿里云部署gitlab

登录阿里云&#xff1a; 阿里云登录 - 欢迎登录阿里云&#xff0c;安全稳定的云计算服务平台 选择自己的ECS实例。我的实例是 使用VNC登录&#xff1a;输入用户名和密码 安装所需的依赖包&#xff1a; sudo yum install -y yum-utils device-mapper-persistent-data lvm2 添…

Git(分布式版本控制系统)(fourteen day)

一、分布式版本控制系统 1、Git概述 Git是一种分布式版本控制系统&#xff0c;用于跟踪和管理代码的变更&#xff0c;它由Linux、torvalds创建的&#xff0c;最初被设计用于Linux内核的开发。Git允许开发人员跟踪和管理代码的版本&#xff0c;并且可以在不同的开发人员之间进行…

货架管理a

路由->vue的el标签->Api->call方法里calljs的api接口->数据声明const xxxData-> 编辑按钮:点击跳出页面并把这一行的数据给到表单formDataba2 保存按钮:formDataba2改过的数据->xxApi发送->查询Api 跳转仓库:把tableData.value数据清空->callXxxAp…

华为云依赖引入错误

问题&#xff1a;记录一次项目加在华为云依赖错误&#xff0c;如下&#xff1a; 错误信息&#xff1a;Could not find artifact com.huawei.storage:esdk-obs-java:pom:3.1.2.1 in bintray-qcloud-maven-repo (https://dl.bintray.com/qcloud/maven-repo/) 找到本地仓库&#…

mac环境Qt Creator报错:Warning: You are changing a read-only file.

mac环境Qt Creator报错&#xff1a; Warning: You are changing a read-only file. 权限许可 文件权限问题 修改文件夹权限的基本语法&#xff1a; 打开终端&#xff1a;打开 macOS 中的终端应用程序。 sudo chmod -R permissions folder_pathchmod 是改变文件或文件夹权限…

虚拟机之ip配置,ssh连接到虚拟机

右边是我的虚拟机&#xff0c;左边是我使用vscode来连接&#xff08;终端也可以。然后注意vscode配置后点一下刷新&#xff0c;不会自动刷新的QA&#xff09;&#xff08;吐槽一下&#xff0c;虚拟机都不能复制内容呢&#xff0c;确实仿真&#xff0c;centos仿真就是因为没有图…

基于深度学习网络的USB摄像头实时视频采集与水果识别matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 将usb摄像头对准一个播放不同水果图片的显示器&#xff0c;然后进行识别&#xff0c;识别结果如下&#xff1a; 本课题中…

爬取贴吧的标题和链接

免责声明 感谢您学习本爬虫学习Demo。在使用本Demo之前&#xff0c;请仔细阅读以下免责声明&#xff1a; 学习和研究目的&#xff1a;本爬虫Demo仅供学习和研究使用。用户不得将其用于任何商业用途或其他未经授权的行为。合法性&#xff1a;用户在使用本Demo时&#xff0c;应确…

微信小程序-自定义tabBar

通过官网给出的示例自己实现了自定义的tabBar&#xff0c;但结果发现 无法监听页面生命周期函数 结语&#xff1a;原想的是实现不一样的效果&#xff08;如下&#xff09; 故尝试了自定义tabBar&#xff0c;虽然做出来了&#xff0c;但也发现这个做法存在不足&#xff1a; 在…

算法竞赛数据生成及使用Sublime对拍

写在前面&#xff1a;最近几天看蒋老师直接使用了Sublime中的FastOlympicCode插件进行了对拍&#xff0c;出于兴趣来学习一下&#xff0c;关于插件的配置已经有很多大佬讲过啦&#xff0c;这里不再赘述。数据生成的代码我会放到最后&#xff0c;包括生成数组、区间、树、图。 …

2024安全大模型技术与市场研究报告

大模型驱动的AIGC引发技术革命&#xff0c;国资委强调国企需加大AI投入。大模型解决网络安全行业攻防不对等问题&#xff0c;国内外企业纷纷推出基于大模型的网络安全产品&#xff0c;AI将改变网络安全产品格局。 自 2022 年底开始&#xff0c;以 LLM(大语言模型&#xff0c;简…