20241114升达ACM校队训练赛(部分题解)

news2024/11/24 8:00:59

20241114升达ACM校队训练赛

文章目录

  • 20241114升达ACM校队训练赛
    • [C - Kousuke's Assignment](https://vjudge.net/problem/CodeForces-2033D)
      • 题意描述:
      • 解题思路:
      • 代码如下:
    • [D - Sakurako's Field Trip](https://vjudge.net/problem/CodeForces-2033C)
      • 题意描述:
      • 解题思路:
      • 解题代码:
    • [F - New Game](https://vjudge.net/problem/CodeForces-2025C)
      • 题目描述:
      • 解题思路:
      • 代码如下:
    • [H - I Love 1543](https://codeforces.com/problemset/problem/2036/D)
      • 题目描述:
      • 解题思路:
      • 代码如下:
    • [A - Reverse the Rivers](https://codeforces.com/problemset/problem/2036/E)
      • 题目描述:
    • 解题思路:
    • [B - Alya and Permutation](https://codeforces.com/problemset/problem/2035/C)
      • 题意描述:
      • 解题思路:
      • 代码如下:
    • [G - Kar Salesman](https://codeforces.com/problemset/problem/2022/B)
      • 题意描述:
      • 解题思路:
      • 代码如下:
    • [E - Black Cells](https://codeforces.com/problemset/problem/2026/B)
      • 题意描述:
      • 解题思路:
      • 代码如下:

C - Kousuke’s Assignment

题意描述:

给出一个数组,计算最大的不重叠美丽段数量:

如果a[l]+a[l+1]+a[l+2]+…+a[r]=0,则该段被认为是美丽的。

解题思路:

如果数组中有一个数字为0,则无需和其他数字结合,本身便是美丽的

  1. 怎样判断哪一段是完美的?完美的符合怎样的条件

    数组:   1  2  3  -3  0  1  0  -1
    前缀和: 1  3   6  3  3  4   4   3
    

    我们可以发现如果一段是完美的,那么他的前缀和会与未加上该段时前缀和的值相等(因为完美段和为0)

  2. 如果数组中有一个数字为0,则无需和其他数字结合,本身便是美丽的

  3. 因此,我们只需要判断每次的前缀和是否出现过,可以用map来记录sum

  4. 由于不重复,每次判断出一个完美段后,需要将map清空以及sum归零

    代码如下:

    #include <bits/stdc++.h>
    using namespace std;
    #define int long long
    #define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    map<int,int>mp;
    void solve()
    {
    	mp.clear();
    	int n;
    	cin>>n;
    	int x;
    	int sum=0;
    	int ans=0;
    	for(int i=1;i<=n;i++)
    	{
    		cin>>x;
    		sum+=x;
    		if(x==0||mp[sum]==1||sum==0)
    		{
    			ans++;
    			sum=0;
    			mp.clear();
    		}
    		else
    		mp[sum]=1;
    		
    	}
    	
    	cout<<ans<<endl;
    }
    signed main()
    {
    	IOS
    	int t;
    	t=1;
    	cin>>t;
    	while(t--)
    	{
    		solve();
    	}
    	return 0 ;
    }
    

D - Sakurako’s Field Trip

题意描述:

每次可以将数组中位置i和位置n-i+1的学生交换,可以进行无限次交换,使得数组中相邻数相同数量最小,输出可达到的最小数量。

解题思路:

  1. 如果n为2,则判断两个数是否相等,可以直接输出

  2. 如果大于2,可以从中间向两边以l,r为指向位置判断是否交换

  3. l,r怎么取值???

    如果n为奇数,则中间的不用变换

    如果n为偶数,我们可以发现中间的两个数字交换前后并无差别

    因此,l为中间数字(n为奇数,中间数字为1个,n为偶数,中间数字为2个)之前的位置,r为中间的数字后的位置

  4. 当什么时候进行交换?

    交换后比交换前相邻数的组数在减少时进行交换

    怎样判判断是否减少?

    e,b分别记录左右两侧交换前与中间靠中间一侧重复数字的个数,同时,c,d分别记录左右两侧交换后与中间靠中间一侧重复数字的个数,通过比较e+b和c+d来决定是否交换

  5. 最后输出数组中相邻数相同数量即可

    解题代码:

    #include <bits/stdc++.h>
    using namespace std;
    #define int long long
    #define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    int a[100010];
    void solve()
    {
    	int n,e=0,b=0,c=0,d=0,t;
    	cin>>n;
    	
    	for(int i=1;i<=n;i++)
    	{
    		cin>>a[i];
    	}
    	if(n==2)
    	{
    		if(a[1]==a[2])
    		cout<<"1"<<endl;
    		else
    		cout<<"0"<<endl;
    	}
    	else
    	{
    		int l,r;
    		if(n%2==0)
    		{
    			l=n/2-1;
    			r=n/2+2;
    		}
    		else
    		{
    			l=n/2;
    			r=n/2+2;
    		}
    		while(l>0&&r<=n)
    		{
    			if(a[l]==a[l+1])
    			e=1;
    			if(a[r]==a[r-1])
    			b=1;
    			if(a[l]==a[r-1])
    			c=1;
    			if(a[r]==a[l+1])
    			d=1;
    			if(e+b>c+d)
    			{
    				t=a[l];
    				a[l]=a[r];
    				a[r]=t;
    			}
    			e=0,b=0,c=0,d=0;
    			l--;r++;
    		}
    		int ans=0;
    		for(int i=2;i<=n;i++)
    		{
    			if(a[i]==a[i-1])
    			ans++;
    		}
    		cout<<ans<<endl;
    	}
    
    }
    signed main()
    {
    	IOS
    	int t;
    	t=1;
    	cin>>t;
    	while(t--)
    	{
    		solve();
    	}
    
    	return 0 ;
    }
    

    F - New Game

    题目描述:

    给出两个整数,n和k。n张卡牌,每张卡牌上有一个整数,当前回合他可以拿一张数字为 x 或数字为 x+1 的卡牌,所拿卡牌上写的不同数字的数量不得超过 k。确定在游戏中可以从牌堆中拿到的最大卡牌数量(他在第一回合可以从牌堆中拿任何一张卡牌)

    解题思路:

    1. 将所有卡牌从小到大排序,每个数字出现的次数存在map中
    2. 用l,r指针记录当前取出卡牌的最大值与最小值,防止超过k
    3. 类似于滑动窗口,保证所取卡牌不同牌数最大等于k,并且每次结果都与ans比较,取得最大值

    代码如下:

    #include <bits/stdc++.h>
    using namespace std;
    #define int long long
    #define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    const int N=2e5+10;
    int a[N];
    void solve()
    {
    	int n,k;
    	cin>>n>>k;
    	for(int i=1;i<=n;i++)
    	{
    		cin>>a[i];
    	}
    	sort(a+1,a+n+1);
    	map<int,int>m;
    	vector<int>v;
    	for(int i=1;i<=n;i++)
    	{
    		if(m[a[i]]==0)
    		v.push_back(a[i]);
    		m[a[i]]++;
    	}
    	int l=0,r=0;
    	int sum=0;
    	int ans=0;
    	while(1)
    	{
    		if(r>v.size()-1) break;
    		ans=max(ans,m[v[r]]);
    		sum+=m[v[r]]; 
    		r++;
    		while(v[r]-v[r-1]==1)
    		{
    			if(r-l>=k)
    			{
    				sum-=m[v[l]];
    				l++;
    			}
    			sum+=m[v[r]];
    			ans=max(sum,ans);
    			r++;
    		} 
    		
    		sum=0;
    		l=r;
    	}
    	cout<<ans<<endl;
    }
    signed main()
    {
    	IOS
    	int t;
    	t=1;
    	cin>>t;
    	while(t--)
    	{
    		solve();
    	}
    	return 0 ;
    }
    

    H - I Love 1543

    题目描述:

给出n*m的大墙毯(n,m均为偶数),顺时针遍历所有层,求出地毯所有层中 1543 1543 1543出现的总次数。

解题思路:

  1. 由于给出的数字并未用空格隔开,我们先进行处理,将其转换为二维数组
  2. 我们对最外层的四个方向数存入一个容器中,由于它属于一个环,因此应该将最初的3个数再次存入容器的尾部
  3. 对容器的数进行判断,求出 1543 1543 1543出现的次数
  4. 由于不止一层,每层判断方式一致,将上述步骤放入循环即可,循环次数即层数为min(m,n)/2

代码如下:

#include <bits/stdc++.h>
using namespace std;
#define int long long
#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
const int N=1010;
int a[N][N];
int ans;
void solve()
{
	ans=0;
	int m,n;
	cin>>m>>n; 
	string s;
	for(int i=1;i<=m;i++)
	{
		cin>>s;
		for(int j=1;j<=s.size();j++)
		{
			a[i][j]=s[j-1]-'0';
		}
	}
//	for(int i=1;i<=m;i++)
//	{
//		
//		for(int j=1;j<=s.size();j++)
//		{
//			cout<<a[i][j]<<" ";
//		}
//		cout<<endl;
//	}

	for(int k=1;k<=min(m,n)/2;k++)
	{
		vector<int>v;
		for(int j=k;j<=n-k+1;j++)
		{
			v.push_back(a[k][j]);
		}
		for(int i=k+1;i<=m-k+1;i++)
		{
			v.push_back(a[i][n-k+1]);
		} 
		for(int j=n-k;j>=k;j--)
		{
			v.push_back(a[m-k+1][j]);
		} 
		for(int i=m-k;i>k;i--)
		{
			v.push_back(a[i][k]);
		} 
		for(int i=0;i<3;i++)
		{
			v.push_back(v[i]);
		}
//		for(auto &x:v){
//			cout<<x<<" ";
//		} 
//		cout<<endl;
		
//	
		for(int i=0;i<v.size();i++)
		{
			if(i+3>=v.size())
			break;
			if(v[i]==1&&v[i+1]==5&&v[i+2]==4&&v[i+3]==3)
			ans++;
		}
	}

	cout<<ans<<endl;
}
signed main()
{
	IOS
	int t;
	t=1;
	cin>>t;
	while(t--)
	{
		solve();
	}
	return 0 ;
}

A - Reverse the Rivers

题目描述:

n n n个国家,每个国家有 k k k个地区,a[i][j]反映该地的水量。
智者打算为第 i个国家的第 j 个地区和第 (i+1)个国家的第 j个地区之间创建通道经过通道创建,地区的水量将由a[i][j]变为a[i][j]|a[i-1][j].
接下来给出q个要求,找出满足要求的最小国家的编号

解题思路:

  1. 处理二维数组,将其变为通道创建后的水量
  2. 异或后数组为递增形式,由于我们需要使用地区的查找,可以将其进行倒置放vector容器,方便接下来查找函数的使用
  3. 想要满足所有要求,需要注意应该取’>'中的最大值和‘<’中的最小值,与数学答案需要满足多组条件时,取相交类似
  4. 最终的区间[l,r]即为满足所有要求的值,如果l<=r,则取l的值即为最优,否则就不存在满足所有条件的值。输出“-1”即可
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
//const int N=1e5+10;
//
//int sum=0;
void solve()
{
	int m,n,k;
	cin>>m>>n>>k;
	int a[m+1][n+1];
	vector<vector<int>>v(n+1,vector<int>(m+1)); 
	for(int i=1;i<=m;i++)
	{
		for(int j=1;j<=n;j++)
		{
			cin>>a[i][j];
			if(i>1)
			a[i][j]|=a[i-1][j]; 
			v[j][i]=a[i][j];
		} 
		
	} 
	 while(k--)
	 {
	 	int p;
	 	cin>>p;
	 	int l=1,r=m;
		int x,y;
		char s;
	 	while(p--)
	 	{
		 	cin>>x>>s>>y;
		 	if(s=='>')
		 	{
		 		int u=upper_bound(v[x].begin()+1,v[x].end(),y)-v[x].begin();
				l=max(l,u);	
			} 
			else
			{
				int w=lower_bound(v[x].begin()+1,v[x].end(),y)-v[x].begin();
				r=min(r,w-1);
			}
		}
	 	if(l<=r)
	 	cout<<l<<endl;
	 	else
	 	cout<<"-1"<<endl;
	} 
}
signed main()
{
	IOS
	int t;
	t=1;
//	cin>>t;
	while(t--)
	{
		solve();
	}
	return 0 ;
}

B - Alya and Permutation

题意描述:

构造包含n个数的排列p,最大化n次操作后操作后k的值,k的初始值为0.
执行n次操作,在第i次操作(i=1,2,3…n):
· 如果i是奇数,则k=k&p[i]其中 & 表示 按位与操作。
· 如果 i 是偶数,则k=k|p[i] ,其中 | 表示 按位或操作。

解题思路:

  1. 如果为偶数个,我们将2 1输出接下来按序输出即为所求
  2. 奇数个时,k通过&与|操作后的最大值,应该为n转化为二进制后的数位,并且各个位全为1转化为10进制的数,(例如10(1010)最大可变为15(1111))
  3. 奇数个时怎样操作才能使得最后结果为与n二进制相同位数的1呢?
    以10为例,我们想得到1111,我们可以1010&1011得到,111又可以由110|11得到,而111又可以由1得到,将这些放到最后,其他的各个位则无所谓
  4. 但是,6为特例,他会导致前后重复,将其单独输出即可

代码如下:

#include <bits/stdc++.h>
using namespace std;
#define int long long
#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
//const int N=1e5+10;
//
//int sum=0;
int a[200010];
void solve()
{
	int n;
	cin>>n;
	if(n==6)
	{
		cout<<"7"<<endl;
		cout<<"1 2 4 6 5 3"<<endl;
		return;
	 } 
	if(n%2!=0)
	{
		int k=0;
		a[1]=2,a[2]=1;
		for(int i=3;i<=n;i++)
		{
			a[i]=i;
		} 
		for(int i=1;i<=n;i++)
		{
			if(i%2==0)
			{
				k|=a[i];
			}
			else
			k&=a[i];
		}
		cout<<k<<endl;
		for(int i=1;i<=n;i++)
		{
			cout<<a[i]<<" ";
		} 
		cout<<endl;
	 } 
	 
	else
	{
			int p;
		for(int i=1;i<=n;i++)
		{
			if(pow(2,i)>n)
			{
				p=i;
				break;
			}
		}
		cout<<pow(2,p)-1<<endl;
		int m=pow(2,p-1);
		cout<<"2 ";
		for(int i=4;i<=n;i++)
		{
			if(i!=m-1&&i!=m-2&&i!=m)
			cout<<i<<" ";
		} 
		cout<<"1 3 "<<m-2<<" "<<m-1<<" "<<m<<endl;
	}
	
}
signed main()
{
	IOS
	int t;
	t=1;
	cin>>t;
	while(t--)
	{
		solve();
	}
	return 0 ;
}

G - Kar Salesman

题意描述:

商店有n种不同型号汽车,第i种有a[i]辆,每位顾客最多买x辆汽车(且这x辆为不同型号),求出可以卖出所有汽车需要的最少顾客量

解题思路:

我们在每一次的减去最大数目型号的过程中,都会去删除其他的值,也就是次大值,然后就得到了一个答案,要不然就是最大值,或者是sum/x向上取整的答案

  1. 如果按汽车不同型号搭配卖出,则为sum%x==0?sum/x+1:sum/x;
  2. 否则为最多的汽车数量数目,取两者最大值

代码如下:

#include<bits/stdc++.h>
using namespace std;
#define int long long
int a[500010];
void solve()
{
	int m,n;
	int ma=0;
	int sum=0;
	cin>>m>>n;
	for(int i=1;i<=m;i++)
	{
		cin>>a[i];
		ma=max(ma,a[i]);
		sum+=a[i];
	}
	int p;
	if(sum%n==0)
	p=sum/n;
	else
	p=sum/n+1;
	cout<<max(ma,p)<<endl; 
}
signed main()
{
	int	t;
	cin>>t;
	while(t--)
	{
		solve();
	}
	return 0;
} 

E - Black Cells

题意描述:

选择两个白色单元格i,j(i!=j&&abs(i-j)<=k),并将它们涂成黑色。给定一个列表a,该列表中的所有单元格必须被涂成黑色。此外,最多只能 涂一个不在此列表中的单元格。你的任务是确定使这一切成为可能的最小值 k。

解题思路:

  1. 如果n为1,则直接输出1
  2. 如果n为偶数,则无需借助其他单元格便可以涂完所有单元格,我们取最大差值即可
  3. n为奇数时,我们应该将奇数位置上的与其他单元格结合,如果偶数位置的改动,则会使偶数前后的数结合,使得差值更大,我们依次尝试每个奇数位置的变换,取最小的一个

代码如下:

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

void solve() {
	int n;
	cin >> n;
	for (int i = 1; i <= n; i++) {
		cin >> a[i];
	}
	if (n == 1) {
		cout << "1" << endl;
		return;
	} else if (n % 2 == 0) {
		int ma = 0;
		for (int i = 2; i <= n; i += 2) {
			ma = max(ma, a[i] - a[i - 1]);
		}
		cout << ma << endl;
		return;
	} else {
		int res = 1;
		int ans = 1e18;
		for (int i = 1; i <= n; i += 2) {
			res = 1;
			for (int j = 1; j <= n; j += 2) {
				if (j == i) {
					j--;
					continue;
				}

				res = max(res, a[j + 1] - a[j]);
			}
			ans = min(ans, res);
		}
		cout << ans << endl;
	}
}

signed main() {
	int	t;
	cin >> t;
	while (t--) {
		solve();
	}
	return 0;
}

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

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

相关文章

速度革命:esbuild如何改变前端构建游戏 (1)

什么是 esbuild&#xff1f; esbuild 是一款基于 Go 语言开发的 JavaScript 构建打包工具&#xff0c;以其卓越的性能著称。相比传统的构建工具&#xff08;如 Webpack&#xff09;&#xff0c;esbuild 在打包速度上有着显著的优势&#xff0c;能够将打包速度提升 10 到 100 倍…

Excel的图表使用和导出准备

目的 导出Excel图表是很多软件要求的功能之一&#xff0c;那如何导出Excel图表呢&#xff1f;或者说如何使用Excel图表。 一种方法是软件生成图片&#xff0c;然后把图片写到Excel上&#xff0c;这种方式&#xff0c;因为格式种种原因&#xff0c;导出的图片不漂亮&#xff0c…

自动化运维-Linux通用性日志切割脚本

一、公司提供的参考脚本&#xff1a; #!/bin/bash # 定义需要清理的文件 log_file("/mpjava/ly.mp.dfpv.acc.biz/bin/nohup.out""/mpjava/ly.mp.dfpv.acc.service/bin/nohup.out"# 添加更多微服务的日志目录路径 ) # 获取当天日期 date_now$(date %Y%m%d)…

Let‘s Encrypt SSL证书:acmessl.cn申请免费3个月证书

目录 一、CA机构 二、Lets Encrypt特点 三、申请SSL 一、CA机构 ‌Lets Encrypt‌是一个由非营利组织Internet Security Research Group (ISRG)运营的证书颁发机构&#xff08;CA&#xff09;&#xff0c;旨在通过自动化和开放的方式为全球网站提供免费、可靠的SSL/TLS证书。…

Java连接MySQL数据库进行增删改查操作

Test 1 首先去查看一下MySQL的版本&#xff1a;mysql -V&#xff08;在cmd中&#xff09;记得要启动MySQL服务在cmd中验证是否可以登录数据库成功&#xff1a;mysql -u root -p&#xff08;然后输入密码&#xff1a;root&#xff09;Test 2 在IDEA创建项目在SQLyog中创建数据…

从搭建uni-app+vue3工程开始

技术栈 uni-app、vue3、typescript、vite、sass、uview-plus、pinia 一、项目搭建 1、创建以 typescript 开发的工程 npx degit dcloudio/uni-preset-vue#vite-ts my-vue3-project2、安装sass npm install -D sass// 安装sass-loader&#xff0c;注意需要版本10&#xff0c;…

React (三)

文章目录 项目地址十二、性能优化12.1 使用useMemo避免不必要的计算12.2 使用memo缓存组件,防止过度渲染12.3 useCallBack缓存函数12.4 useCallBack里访问之前的状态(没懂)十三、Styled-Components13.1 安装13.2给普通html元素添加样式13.3 继承和覆盖样式13.4 给react组件添…

javascrip页面交互

元素的三大系列 offset系列 offset初相识 offset系列属性 作用 element.offsetParent 返回作为该元素带有定位的父级元素&#xff0c;如果父级没有定位&#xff0c;则返回body element.offsetTop 返回元素相对于有定位父元素上方的偏移量 element.offsetLeft 返回元素…

生成对抗网络(简要介绍)

生成对抗网络&#xff08;Generative Adversarial Network&#xff0c;GAN&#xff09;是一种深度学习模型架构&#xff0c;由 Ian Goodfellow 等人在 2014 年提出。GAN 由两个神经网络组成——生成器&#xff08;Generator&#xff09;和判别器&#xff08;Discriminator&…

(C语言)文件操作

目录 文件 程序文件 数据文件 文件名 ​编辑数据文件的分类 文件的打开和关闭 流 标准流 1&#xff09;stdin 2&#xff09;stdout 3&#xff09;stderr 文件指针 文件的打开和关闭 对文件内容操作的函数 1&#xff09;fgetc&#xff0c;fputc 2&#xff09;fp…

招商蛇口|在低密园林里,开启生活的“任意门”

“最好的建筑是这样的&#xff0c;我们深处在其中,却不知道自然在哪里终了&#xff0c;艺术在哪里开始。” 凭借深耕西安10载的城市远见&#xff0c;以及建立在成功人居经验之上的敏锐洞察&#xff0c;招商蛇口将林语堂名言里的生活&#xff0c;变成了现实。 都市化越是加速&…

【es6进阶】vue3中的数据劫持的最新实现方案的proxy的详解

vuejs中实现数据的劫持,v2中使用的是Object.defineProperty()来实现的&#xff0c;在大版本v3中彻底重写了这部分&#xff0c;使用了proxy这个数据代理的方式&#xff0c;来修复了v2中对数组和对象的劫持的遗留问题。 proxy是什么 Proxy 用于修改某些操作的默认行为&#xff0…

掌上单片机实验室 – RT-Thread + ROS2 初探(25)

在初步尝试RT-Thread之后&#xff0c;一直在琢磨如何进一步感受它的优点&#xff0c;因为前面只是用了它的内核&#xff0c;感觉和FreeRTOS、uCOS等RTOS差别不大&#xff0c;至于它们性能、可靠性上的差异&#xff0c;在这种学习性的程序中&#xff0c;很难有所察觉。 RT-Threa…

李宏毅机器学习课程知识点摘要(14-18集)

线性回归&#xff0c;逻辑回归&#xff08;线性回归sigmoid&#xff09;&#xff0c;神经网络 linear regression &#xff0c; logistic regression &#xff0c; neutral network 里面的偏导的相量有几百万维&#xff0c;这就是neutral network的不同&#xff0c;他是…

ThingsBoard规则链节点:AWS SQS 节点详解

引言 ThingsBoard 是一个开源的物联网平台&#xff0c;提供了设备管理、数据收集、处理和可视化等功能。规则链是 ThingsBoard 中的一个强大功能&#xff0c;允许用户定义复杂的业务逻辑来处理设备上报的数据。在规则链中&#xff0c;AWS SQS 节点用于将消息发送到 Amazon Simp…

在Windows 11上启用远程桌面及其故障排查

在Windows 11上启用远程桌面 这将允许其它设备远程连接到你的电脑&#xff0c;并像坐在你的电脑前一样操纵你的电脑桌面。 启用方法很简单&#xff0c;先在设置中找到远程桌面。 点击进入后&#xff0c;点击右侧的滑钮启用远程桌面即可。 勾选启用网络级别验证使得登录者在能…

【H2O2|全栈】JS进阶知识(八)ES6(4)

目录 前言 开篇语 准备工作 浅拷贝和深拷贝 浅拷贝 概念 常见方法 弊端 案例 深拷贝 概念 常见方法 弊端 逐层拷贝 原型 构造函数 概念 形式 成员 弊端 显式原型和隐式原型 概念 形式 constructor 概念 形式 原型链 概念 形式 结束语 前言 开篇语…

RabbitMQ3:Java客户端快速入门

欢迎来到“雪碧聊技术”CSDN博客&#xff01; 在这里&#xff0c;您将踏入一个专注于Java开发技术的知识殿堂。无论您是Java编程的初学者&#xff0c;还是具有一定经验的开发者&#xff0c;相信我的博客都能为您提供宝贵的学习资源和实用技巧。作为您的技术向导&#xff0c;我将…

zotero7 插件使用

zotero style 1、下载地址 Zotero 插件商店 | Zotero 中文社区 2、配置 在工具插件里 3、配置 style 进入高级→设置编辑器 查找 easy 设置完即可显示&#xff0c; 注1&#xff1a;easyscholar的密钥要自行申请注册&#xff0c;注册地址&#xff1a;easySchol…

uniapp+vue3+ts H5端使用Quill富文本插件以及解决上传图片反显的问题

uniappvue3ts H5端使用Quill富文本插件以及解决上传图片反显的问题 1.在项目中安装Quill npm i quill1.3.72.需要显示富文本的页面完整代码 <template><view><div ref"quillEditor" style"height: 65vh"></div></view> &…