东方博宜OJ 训练计划:数学知识及编程应用 习题集

news2024/11/30 15:37:01

啊啊啊,好久没发过题解啦,望各位大佬 RP++

食用OJ : 东方博宜
网站:东方博宜

第一部分:素数

这里想必大家都很了解了,就不详细介绍了 (实在太累了)

在C++中,素数是一个只能被1和自身整除的正整数。也就是说,如果一个数不能被任何其他数整除,则它是素数。
素数在C++中有很多应用,例如:
  1. 判断一个数是否为素数:可以通过循环遍历2到n-1的所有数,判断是否能被整除来判断一个数n是否为素数。

  2. 找出一定范围内的所有素数:可以使用筛选法(筛选法中常用的是埃拉托斯特尼筛选法),从2开始,不断将能被当前选中的数整除的数标记为非素数,直到遍历完所有的数。

  3. 求解素数因子:可以通过不断将一个数n除以素数,直到n不能再被素数整除,最后剩下的n即为最大的素数因子。

  4. 生成大素数:在某些加密算法中,需要生成一个足够大的素数。这可以通过随机生成一个大数,然后使用素数测试算法(如Miller-Rabin算法)来确定该数是否为素数。

总而言之,素数在C++中是一种特殊的数,其只能被1和自身整除。在编程中,我们可以利用素数的特性进行判断、筛选、因子分解等操作。

第二部分 素数筛

素数筛这里简单介绍10种方法,有些有点偏,各位不要介意,具体的应用到题目中详细介绍

1.埃拉托斯特尼素数筛(Sieve of Eratosthenes):这是一种经典的找出一定范围内所有素数的筛选算法。

2.欧拉筛(Sieve of Euler):这种算法是对埃氏筛的改进,可以更高效地找出一定范围内的所有素数。

3.线性筛法(Linear Sieve):这种算法结合了埃氏筛和欧拉筛的优点,可以在O(n)的时间复杂度内找出一定范围内的所有素数。

4.分块筛法(Segmented Sieve):当需要在一个很大范围内找素数时,可以使用分块筛法,分段进行筛选,降低算法的时间复杂度。

5.素数测试算法(Primality Testing):这些算法可以用来判断一个数是否是素数,如费马素性测试、米勒-拉宾素性测试等。

6.质因数分解算法(Prime Factorization):这些算法可以将一个数分解成若干个质因数的乘积,常用的有试除法、分解定理等。

7.素数随机生成算法(Random Prime Generation):这些算法可以随机生成一个指定位数的素数,如Miller-Rabin随机素数生成算法等。

8.快速幂算法(Fast Exponentiation):在进行素数测试或质因数分解时,往往需要进行大数的幂运算,快速幂算法可以提高计算效率。

9.素数间隔问题(Prime Gap Problem):这个问题研究了相邻素数之间的差距,素数筛相关的算法可以用来研究和解决这个问题。

10.利用位运算优化的素数筛算法(Bitwise Optimization):这种算法利用位运算技巧,可以进一步提高素数筛算法的效率。1.埃拉托斯特尼素数筛(Sieve of Eratosthenes):这是一种经典的找出一定范围内所有素数的筛选算法。

一般都是用里面的3 ~ 4种,后面到高阶算法,程序设计优化才会用到 (本蒟蒻不会,望DALAO勿喷)

第三部分:唯一分解定理定义及应用

唯一分解定理(Unique factorization theorem)是数论中的一个重要定理,它指出任何一个整数都可以被唯一地分解为素数(或其负数)的乘积。
具体来说,唯一分解定理可以表述为:任何一个整数n(n ≠ 0,±1)都可以表示为如下形式的乘积:

n = p₁^k₁ * p₂^k₂ * p₃^k₃ * … * pₙ^kₙ
其中,p₁, p₂, p₃, …, pₙ是素数(或其负数),k₁, k₂, k₃, …, kₙ是非负整数。

唯一分解定理的意义在于,它保证了整数的分解是唯一的,即不同的素数分解所得到的结果是不同的。这一定理是数论中的基础定理,它在证明其他定理和问题中起到了重要的作用。
唯一分解定理的应用很广泛。在代数学、密码学和计算机科学等领域中,唯一分解定理是很多关键算法的基础。例如,在密码学中,唯一分解定理被用于RSA加密算法中的公钥和私钥的生成和使用。在代数学中,唯一分解定理被用于研究整数环、多项式环等的性质和结构。在计算机科学中,唯一分解定理被用于数据结构和算法的设计和分析。
总之,唯一分解定理是数论中的一个基本定理,它保证了整数的分解是唯一的,并在许多领域中有广泛的应用。唯一分解定理(Unique factorization theorem)是数论中的一个重要定理,它指出任何一个整数都可以被唯一地分解为素数(或其负数)的乘积。

第四部分:题解

正文来了
本题解主要和素数有关,考察对于素数的认识(我就不解释了,都注释在代码里面)

OJ 网站:东方博宜 网址已放在文章前面了
注意⚠️:东方博宜里面没有相对应的题单,得自己去搜题号!(都是蒟蒻一人搜集过来的……)

题目第一部分:素数

2136 - 筛素数 解法一:简单筛法

//解法一:简单筛法

/*
解释:
定义isPrime函数(bool),用于判断素数
再从1遍历到n,每个数遍历判断
数据量并不大,10^6,不会超限
*/

#include <iostream>
#include <vector>
#include <cmath>
#include <algorithm>
using namespace std;
typedef long long ll;

bool isPrime(ll num) {
	//特判:如果 num <= 1 就一定不是素数 
	if (num <= 1) return false;
	for (ll i = 2; i <= sqrt(num); i++) {
		//如果i是num的因数,就代表num不是素数(因为有因数)
		if (num % i == 0) {
			return false;
		}
	}
	return true;
}

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	//ans用于累加素数
	ll n, ans = 0;
	cin >> n;
	//遍历 1~n
	for (ll i = 1; i <= n; i++) {
		if (isPrime(i)) {
			ans++;
		}
	}
	cout << ans << endl;
	return 0;
}

2136 - 筛素数 解法二:埃氏筛(解法一:存数组的方法)

//解法二:埃氏筛
//埃氏筛解法一:存数组的方法

#include <iostream>
#include <vector>
#include <cmath>
#include <algorithm>
using namespace std;
typedef long long ll;

//标记素数(用bool数组防止占用内存)
vector<bool> f(1000010);
//存储所有的素数
vector<ll> primes(1000010);
ll n, k;

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);

	cin >> n;
	//特判特殊的数
	//不是素数
	f[0] = f[1] = true;

	//循环遍历所有的数,逐个判断
	for (ll i = 2; i <= n; i++) {
		//如果i是素数,i的倍数不是素数
		if (!f[i]) {
			k++;
			primes[k] = i;

			//将i的倍数标记为不是素数
			for (ll j = i * 2; j <= n; j += i) {
				//标记不是素数
				f[j] = true;
			}
		}
	}
	cout << k << endl;
	return 0;
}

2136 - 筛素数 解法三:埃氏筛(解法二:不存数组的方法)

//解法三:埃氏筛
//埃氏筛解法二:不存数组的方法

#include <iostream>
#include <vector>
#include <cmath>
#include <algorithm>
using namespace std;
typedef long long ll;

//标记素数(用bool数组防止占用内存)
vector<bool> f(1000010);
//存储所有的素数
//vector<ll> primes(1000010);

//k表示素数的个数
ll n, k;

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);

	cin >> n;
	//特判特殊的数
	//不是素数
	f[0] = f[1] = true;

	k = n - 1;	

	//循环遍历所有的数,逐个判断
	//循环到sqrt(n)即可
	for (ll i = 2; i <= sqrt(n); i++) {
		//如果i是素数,i的倍数不是素数
		if (!f[i]) {
//			k++;
//			primes[k] = i;

			//将i的倍数标记为不是素数
			for (ll j = i * 2; j <= n; j += i) {
				//如果没有标记过,则标记
				if (!f[j]) {
					//标记不是素数
					f[j] = true;
					k--;
				}
			}
		}
	}
	cout << k << endl;
	return 0;
}

2136 - 筛素数 解法四:线性筛(欧拉筛)

//解法四:线性筛(欧拉筛)
/*
解释:每个合数只被自己的最小质因子筛除
比如:6在埃氏筛中既能被2筛除,又能被3筛除
我们希望在线性筛中,6仅仅被最小的质因子,也就是2筛除
*/

#include <iostream>
#include <vector>
#include <cmath>
#include <algorithm>
using namespace std;
typedef long long ll;

//标记素数(用bool数组防止占用内存)
vector<bool> f(1000010);
//存储所有的素数
vector<ll> primes(1000010);
ll n, k;

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	cin >> n;
	//特判
	f[0] = f[1] = true;
	
	//循环遍历每个数,逐个判断
	for (ll i = 2; i <= n; i++) {
		//如果i是素数,存储
		if (!f[i]) {
			k++;
			primes[k] = i;
		}

		//每个合数,只能被自己的最小值因子筛除
		//j循环的是primes数组
		//筛的是 i * primes[j] 中的数
		for (ll j = 1; i * primes[j] <= n; j++) {
			//将该数筛掉
			f[i * primes[j]] = true;

			//一定要break!
			//如果i % primes[j] == 0
			//i * primes[j + 1] % primes[j] == 0
			if (i % primes[j] == 0) break;
		}
	}
	cout << k << endl;
	return 0;
}

2007 - 半质数 解法一:埃氏筛

/*
半质数:
正整数N,恰好能够分解成两个因数的乘积
如 4 = 2 * 2, 15 = 3 * 5 等,但12不是,因为 12 = 2 * 2 * 3

问:s~e之间有多少个半质数?

思路:
1、先筛出所有的素数
2、两两配对相乘,看能否构建出半质数(在s~e之间)
3、注意两个素数相乘,可能溢出int(用long long)
*/

#include <iostream>
#include <cmath>
#include <vector>
#include <algorithm>
using namespace std;
typedef long long ll;

vector<bool> f(5000010);
ll s, e, cnt;

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	cin >> s >> e;
	//筛出2~e范围内的素数
	for (ll i = 2; i <= e; i++) {
		//如果i是素数
		if (!f[i]) {
			//i的倍数不是素数
			for (ll j = i * 2; j <= e; j += i) {
				//标记合数
				f[j] = true;
			}
		}
	}
	//两两素数配对,找出s~e范围的半质数
	for (ll i = 2; i <= sqrt(e); i++) {
		//如果i是素数
		if (!f[i]) {
			//找配对的素数
			for (ll j = i; i * j <= e; j++) {
				if (i * j >= s && !f[j]) {
					cnt++;
				}
			}
		}
	}
	cout << cnt << endl;
	return 0;
}

2007 - 半质数 解法二:线性筛

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
typedef long long ll;

vector<bool> f(5000010, false);
vector<ll> p;
ll s, e, cnt;

int main() {
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    cin >> s >> e;

    if (s < 2) s = 2;  // 半质数定义从2开始

    // 1. 筛素数
    f[0] = f[1] = true;
    for (ll i = 2; i <= e; i++) {
        if (!f[i]) {
            p.push_back(i);
        }
        for (size_t j = 0; j < p.size() && i * p[j] <= e; j++) {
            f[i * p[j]] = true;
            if (i % p[j] == 0) break;
        }
    }

    // 2. 两两配对计算半质数
    cnt = 0;
    for (size_t i = 0; i < p.size(); i++) {
        for (size_t j = i; j < p.size(); j++) {
            ll product = p[i] * p[j];
            if (product > e) break;
            if (product >= s) {
                cnt++;
            }
        }
    }

    cout << cnt << endl;
    return 0;
}

题目第二部分:唯一分解定理

1080 - 质因子

#include <iostream>
using namespace std;
int main()
{
	int n;
	cin >> n;
	int i = 2;//除数
	while (!(n == 1))
	{
		if (n % i == 0)
		{
			n /= i;
			cout << i << endl;
			i = 2;
		}
		else
		{
			i++;
		}
	}
	return 0;
}

2137 - 质因子2

#include <iostream>
#include <cmath>
#include <algorithm>
using namespace std;
typedef long long ll;

int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	ll n;
	cin >> n;

	//在 2~sqrt(n) 之间找质因子
	for (ll i = 2; i <= sqrt(n); i++) {
		//当i是n的因子时,i是质因子,从n中除掉i
		while (n % i == 0) {
			cout << i << endl;
			n = n / i;
		}
	}

	//如果最后n不是1,n也是质因子
	if (n != 1) cout << n << endl;
	return 0;
}

2140 - 质因子3

本蒟蒻一直没想到用map,导致一直没AC。 是机房大佬告诉我用map的
/*
求质因数及质因数出现的次数:
1、采用map<ll, ll>存储质因数及出现的次数
2、按题意输出规定的格式
*/

#include <iostream>
#include <map>
#include <vector>
#include <cmath>
#include <algorithm>
using namespace std;
typedef long long ll;

//maxn存储最大的质因子
ll n, maxn;
map<ll, ll> m;
map<ll, ll>::iterator it;

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	cin >> n;

	//特判n等于1
	if (n == 1) {
		cout << "1=1";
		return 0;
	}

	cout << n << "=";

	/*
	分解质因数
	i * i <= n,因为如果i很大,i * i 会溢出 int
	*/

	for (ll i = 2; i <= sqrt(n); i++) {
		while (n % i == 0) {
			m[i]++;
			n /= i;
			maxn = i;
		}
	}

	//特判
	if (n > 1) {
		m[n]++;
		maxn = max(maxn, n);
	}

	//输出
	for (it = m.begin(); it != m.end(); it++) {
		cout << it->first;
		if (it->second > 1) cout << "^" << it->second;
		//如果不是最后一组输出
		if (it->first != maxn) cout << "*";
	}
	return 0;
}

2138 - 乘积的约数个数

/*
因数个数 = (a1 + 1) * (a2 + 1) * (a3 + 1) * ... * (ai + 1)

1.所有的数相乘,分解质因子,得到质因子的个数
  和每个数单独分解质因子,得到质因子的个数,答案一致

2.两个数相加的结果%10000,和两个数%10000相加,再%10000,结果一致

3.乘法同理(同上)

本题的思路:
将每个数分解质因子,求出每个只因子出现的次数,按公式求解约数个数!
*/

#include <iostream>
#include <map>
#include <vector>
#include <cmath>
#include <algorithm>
using namespace std;
typedef long long ll;

ll n, x, r = 1;
map<ll, ll> m;
map<ll, ll>::iterator it;
const ll M = 1e9 + 7;

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	cin >> n;
	for (ll i = 1; i <= n; i++) {
		cin >> x;
		//分解x的质因子
		for (ll j = 2; j <= sqrt(x); j++) {
			while (x % j == 0) {
				m[j]++;
				x /= j;
			}
		}
		if (x > 1) m[x]++;
	}

	//按公式计算
	for (it = m.begin(); it != m.end(); it++) {
		r = r * (it->second + 1) % M;
	}
	cout << r << endl;
	return 0;
}

2139 - 乘积的约数和

/*
因数之和 = (p1^0 + p1^1 + ... + p1^a1) * ... * (pi^0 + pi^1 + ... + pi ^ ai)

本题的思路:
将每个数分解质因子,求出每个质因子出现的次数,按公式求解约数个数!
*/

#include <iostream>
#include <map>
#include <vector>
#include <algorithm>
#include <cmath>
using namespace std;
typedef long long ll;

ll n, x, r = 1, t, s;
map<ll, ll> m;
map<ll, ll>::iterator it;
const ll M = 1e9 + 7;
typedef long long ll;

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	cin >> n;
	//读入x并分解质因子
	for (ll i = 1; i <= n; i++) {
		cin >> x;
		//分解
		for (ll j = 2; j <= sqrt(x); j++) {
			while (x % j == 0) {
				m[j]++;
				x /= j;
			}
		}
		if (x > 1) m[x]++;
	}
	
	//计算
	for (it = m.begin(); it != m.end(); it++) {
		//求(pi^0 + pi^1 + ... + pi ^ ai)
		s = 0;
		//t表示 pi ^ ai
		t = 1;
		for (ll i = 0; i <= it->second; i++) {
			s = (s + t) % M;
			t = (t * it->first) % M;
		}
		r = (r * s) % M;
	}
	cout << r << endl;
	return 0;
}

全部AC!

答案正确

完结撒花!

有需求的可以私信哦!

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

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

相关文章

Chrome浏览器 本地js代码替换(Overrides)以及多场景出现 浏览器响应慢、卡顿等情况——问题解决

前言&#xff1a;作为一名前端开发者&#xff0c;chorme 的本地代码替换功能可以说非常收益的。例如&#xff1a;某一前端的线上版本出现问题了&#xff0c;如果不想跑本地代码调试&#xff0c;只是想先通过Chrome线上改代码的方式来定位问题并尝试修复可以说是非常方便。但是&…

2024 Testing Expo即将开幕,怿星科技展品大剧透!

汽车行业万众瞩目的 汽车测试及质量监控博览会&#xff08;Testing Expo China – Automotive&#xff09; 即将在上海开幕&#xff01; 2024年8月28日至30日 上海世博展览馆H1馆 怿星科技诚邀您莅临展位&#xff08;展位号2057&#xff09;&#xff01; 怿星科技将展出哪…

二叉树中的奇偶树问题

目录 一题目&#xff1a; 二思路汇总&#xff1a; 1.二叉树层序遍历&#xff1a; 1.1题目介绍&#xff1a; 1.2 解答代码&#xff08;c版&#xff09;&#xff1a; 1.3 解答代码&#xff08;c版&#xff09;&#xff1a; 1.4 小结一下&#xff1a; 2.奇偶树分析&#xf…

【学习笔记】Matlab和python双语言的学习(一元线性回归模型)

文章目录 前言一、一元线性回归回归分析的一般步骤一元线性回归的基本形式回归方程参数的最小二乘法估计对回归方程的各种检验估计标准误差的计算回归直线的拟合优度判定系数显著性检验 二、示例三、代码实现----Matlab1.Matlab 的 regress 函数2.Matlab 代码 四、代码实现----…

我像只鱼儿在你的进程池~

我像只鱼儿在你的进程池&#xff5e; 只为你守候这进程间通信&#xff5e; 一点都不押韵 点踩吧 父进程是master&#xff0c;它提前创建出一堆紫禁城&#xff0c;如果有命令就交给子进程去执行&#xff08;和shell不一样&#xff0c;shell是有任务才去创建子进程&#xff09…

吹爆SyntaxFlow!数据流分析实战解析

正文开始前辟个谣先 最近有小伙伴来问闭源收费的事 牛牛郑重告知大家 目前还没有这个计划 请大家放心使用 添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; 样例解析在之前的SyntaxFlow教程中&#xff0c;我们已经看到了非常多的代码样例进行数据流分…

广东失业领取指南 记录自己的失业

1. 前言 坐标广州&#xff0c;七月底就被裁员领取n1解放了&#xff0c;趁着这次机会&#xff0c;也想着躺几个月后再去上班&#xff0c;现在工作也不好找&#xff0c;加上之前加班实在是消耗太大了。想着躺也不能干躺&#xff0c;去申请一下失业金每个月还有补贴用&#xff0c…

[数据集][目标检测]锤子检测数据集VOC+YOLO格式1510张1类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;1510 标注数量(xml文件个数)&#xff1a;1510 标注数量(txt文件个数)&#xff1a;1510 标注…

悟空降世 撼动全球

文&#xff5c;琥珀食酒社 作者 | 积溪 一只猴子能值多少钱&#xff1f; 答案是&#xff1a;13个小目标 这两天 只要你家没有断网 一定会被这只猴子刷屏 它就是咱国产的3A游戏 《黑神话&#xff1a;悟空》 这只猴子到底有多火&#xff1f; 这么跟你说吧 茅台见了它都…

TPM管理培训值不值得去?

TPM管理培训是否值得去&#xff0c;取决于多个因素&#xff0c;包括个人职业发展需求、所在企业的情况以及培训内容和质量等&#xff0c;具体如深圳TPM管理咨询公司下文所述&#xff1a; 一、个人职业发展需求 - 从事设备管理相关工作&#xff1a;如果您的工作涉及设备维护、生…

数聚股份携手销售易闪耀CDIE数字化创新博览会,开启企业数字化转型加速器

6月25日-26日&#xff0c;第十届CDIE数字化创新博览会在上海张江科学会堂隆重举办&#xff0c;本次博览会大咖云集&#xff0c;汇聚零售、快消、制造、医疗、金融、出海等领域的企业高管和部门负责人&#xff0c;打破行业边界、共话数字化痛点和热点话题。 时隔一年&#xff…

UDS 诊断 - ReadMemoryByAddress(按地址读取内存)(0x23)服务

UDS 诊断服务系列文章目录 诊断和通信管理功能单元 UDS 诊断 - DiagnosticSessionControl&#xff08;诊断会话控制&#xff09;&#xff08;0x10&#xff09;服务 UDS 诊断 - ECUReset&#xff08;ECU重置&#xff09;&#xff08;0x11&#xff09;服务 UDS 诊断 - SecurityA…

黑神话孙悟空,自媒体小白如何蹭这波流量!

当下&#xff0c;黑神话孙悟空的热度如熊熊烈火&#xff0c;席卷了整个游戏世界。 只要与这个话题沾边&#xff0c;似乎就能轻松吸引大量关注。 那么&#xff0c;对于不怎么懂自媒体运营的小伙伴来说&#xff0c;该如何抓住这个机遇呢&#xff1f; 别担心&#xff0c;我们可以…

LearnOpenGL——延迟渲染学习笔记

延迟渲染学习笔记 一、基本概念二、G-BufferMRT 三、Lighting Pass四、结合延迟渲染和前向渲染五、更多光源 我们之前使用的一直是 前向渲染&#xff08;正向渲染 Forward Rendering&#xff09;&#xff0c;指的是在场景中根据所有光源照亮一个物体&#xff0c;之后再渲染下一…

MBR30100CT-ASEMI低压降肖特基MBR30100CT

编辑&#xff1a;ll MBR30100CT-ASEMI低压降肖特基MBR30100CT 型号&#xff1a;MBR30100CT 品牌&#xff1a;ASEMI 封装&#xff1a;TO-220 批号&#xff1a;最新 恢复时间&#xff1a;35ns 最大平均正向电流&#xff08;IF&#xff09;&#xff1a;30A 最大循环峰值反…

Django | 从中间件的角度来认识Django发送邮件功能

文章目录 概要中间件中间件 ---> 钩子实现中间件demo 邮件发送过程Django如何做邮件服务配置流程 中间件结合邮件服务实现告警 概要 摘要 业务告警 邮件验证 密码找回 邮件告警 中间件 中间件 —> ‘钩子’ 例如 访问路由 的次数【请求】 中间件类须实现下列五个方法…

商业模式画布全面解读:产品经理的实用手册

在产品经理的日常工作中&#xff0c;最基本的一项任务就是进行竞品分析和商业模式分析。一方面&#xff0c;通过竞品分析环节&#xff0c;了解当前产品的竞争力和不可替代性&#xff1b;另一方面&#xff0c;定期评估产品的商业模式是否存在风险&#xff0c;是否具有可持续性。…

Destiny of Gods首轮测试正式开启,参与玩家数量突破10万

天神风云&#xff0c;波澜再兴&#xff0c;GameFi链游聚合平台Destiny of Gods首款同名数字卡牌回合制游戏首轮测试定档8月20日20:00&#xff08;GMT8&#xff09;&#xff0c;现已正式开启&#xff01; 这是一个由人、游灵和神灵共存的世界&#xff0c;历经蛮荒时期的纷争与信…

Docker的安装与镜像配置

小编目前大一&#xff0c;刚开始着手学习SSM&#xff0c;小编会把每个框架都整理成知识点发布出来。如果你也同时在学习SSM的话&#xff0c;不妨看看我做的这个笔记。我认为同为初学者&#xff0c;我把我对知识点的理解以这种代码加观点的方式分享出来不仅加深了我的理解&#…

游泳耳机哪个牌子好?角逐必选榜的4大王者游泳耳机测评解析!

在选择游泳耳机时&#xff0c;许多消费者往往会被市场上五花八门的产品所困扰。特别是那些标榜能够防水防潮的产品&#xff0c;但实际上它们往往缺乏核心技术支持&#xff0c;存在很高的损伤风险。据调查&#xff0c;超过90%的用户反映&#xff0c;市面上的游泳耳机常常无法达到…