cf 959D Mahmoud and Ehab and another array construction task

普通人也能看懂的Transformer源代码解释(PyTorch) Transformer源代码解释之PyTorch篇 章节 词嵌入 位置编码 多头注意力 搭建Transformer 在这里插入图片描述 词嵌入 Transformer本质上是一种Encoder,以翻译任务为例,原始数据集是以两种语言组成一行的,在应用时,应是Encoder输入源语言序列,Decoder里面输入需要被转换的语言序列(训练时)。一个文本常有许多序列组成,常见操作为将序列进行一些预处理(如词切分等)变成列表,一个序列的列表的元素通常为词表中不可切分的最小词,整个文本就是一个大列表,元素为一个一 阅读详情

一 原题

D. Mahmoud and Ehab and another array construction task
time limit per test
3 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output

Mahmoud has an array a consisting of n integers. He asked Ehab to find another array b of the same lengthsuch that:

  • b is lexicographically greater than or equal to a.
  • bi ≥ 2.
  • b is pairwise coprime: for every 1 ≤ i < j ≤ n, bi and bj are coprime, i. e. GCD(bi, bj) = 1, where GCD(w, z) is the greatest common divisor of w and z.

Ehab wants to choose a special array so he wants the lexicographically minimal array between all the variants. Can you find it?

An array x is lexicographically greater than an array y if there exists an index i such than xi > yi and xj = yj for all 1 ≤ j < i. An array x is equal to an array y if xi = yi for all 1 ≤ i ≤ n.

Input

The first line contains an integer n (1 ≤ n ≤ 105), the number of elements in a and b.

The second line contains n integers a1, a2, ..., an (2 ≤ ai ≤ 105), the elements of a.

Output

Output n space-separated integers, the i-th of them representing bi.

Examples
input
Copy
5
2 3 5 4 13
output
Copy
2 3 5 7 11 
input
Copy
3
10 3 7
output
Copy
10 3 7 
Note

Note that in the second sample, the array is already pairwise coprime so we printed it.


二 分析

给定一个长度为n的数组a(n<=10^5,ai<=10^5)要求你给出一个新的等长数组b,b的字典序要不小于a,且b中的元素两两互素,输出所有可行的b中字典序最小的一个。

要输出的b字典序最小,我们从前往后贪心地去填数字。为了满足两两互素的条件,维护一个素数表v[maxp],如果素数p已经是先前某个b中元素的素因子,v[p]设置为true。注意,bi的上界题目中并没有规定,但前10^5个素数组成的数组一定是一个合法解,根据素数约占前n个数的1/ln(n),我在实现时把bi的上界定位了1e7.

假设我们已经搞定了b中前k-1个数,如果b的前k-1个数和a都相同,那么bk就要大于等于ak,我们从ak开始枚举可行解,每次验证的代价是一次质因数分解;如果b的前k-1个数中有大于a的,那么bk设置为当前为使用过的最小素数就行了。


三 代码

#include <cstdio>

const int maxn = 1e7 + 5;

int n, a[maxn], d[maxn];
bool v[maxn];

void prepare() {
	for (int i = 2; i < maxn; i++) {
		if (d[i] != 0) continue;
		for (int j = i; j < maxn; j += i) d[j] = i;
	}
}

int main() {
	prepare();
	scanf("%d", &n);
	for (int i = 0; i < n; i++)
		scanf("%d", &a[i]);
	int idx = 0, x;
	while (idx < n) {
		bool ok = true;
		x = a[idx];
		while (x != 1) {
			if (v[d[x]]) { ok = false; break; }
			x /= d[x];
		}
		if (ok) {
			x = a[idx];
			while (x != 1) {
				v[d[x]] = true;
				x /= d[x];
			}
			idx++;
			continue;
		}
		while (!ok) {
			ok = true;
			x = ++a[idx];
			while (x != 1) {
				if (v[d[x]]) { ok = false; break; }
				x /= d[x];
			}
		}
		x = a[idx];
		while (x != 1) {
			v[d[x]] = true;
			x /= d[x];
		}
		idx++;
		break;
	}
	
	int p = 2;
	while (idx < n) {
		for (;; p++) {
			if (d[p] != p || v[p]) continue;
			a[idx++] = p;
			p++; break;
		}
	}
	
	for (int i = 0; i < n; i++) printf("%d ", a[i]);

	return 0;
}

使用Matlab simulink的PLC coder功能进行算法搭建与处理 使用的案例如下: Anti-Windup PID Control Demonstration with Feedforward Control 将其中的PID块生成SCL语言再导入TIA 使用的平台如下: Matlab 2019b TIA portal 15.1 应用:可以在PLC中搭载一些并不方便使用的,或者比较难使用的算法 步骤如下: 首先打开案例,案例地址我放在最下面,点击Run运行仿真,必... 阅读详情

相关推荐

Unity海洋渲染实战:Ceto Ocean System核心原理与高级应用指南

实时水面渲染是计算机图形学中的重要课题,涉及波浪模拟、光照交互和着色器编程等核心技术。其原理通常基于物理模型,如使用Gerstner波模拟规则海浪,或通过快速傅里叶变换(FFT)处理频谱数据生成随机海面。这些技术的价值在于能以可控的性能开销,在游戏中实现具有体积感、反射和折射效果的真实水体。在开放世界、海战模拟等应用场景中,专业的海洋系统如Ceto Ocean System,通过模块化架构整合了波浪生成、动态网格和渲染管线,为开发者提供了完整的解决方案。本文深入探讨了其双引擎波浪系统和多层渲染结构,并分享了

weixin_29002595的博客 279

cf Mahmoud and Ehab and another array construction task(素数处理大乱炖)

做惯了素数分解,其实直接因数分解,复杂度也是根号的,这非常有用. 筛是线性的,这也非常重要. 给出一段数,让你给出一个字典序大于他的最小数列.这种最小的大于..不是特别的东西. 每一个数放进来,素因数分解,如果和之前数没有重合,那么把他的新素因数都过一遍. 如果有了重合,那么就不行了. 这题说不出什么,感觉就是筛法的重现.搞不太清楚. #include &lt;iostream&gt;...

blog 307

量子-经典混合架构与动态QUBO建模

量子-经典混合架构与动态QUBO建模的结合,是当前量子计算与经典计算融合领域的前沿方向。通过将量子计算的并行性与经典计算的灵活性结合,该技术为解决复杂动态优化问题(如实时调度、金融投资组合优化、电力系统控制等)提供了全新的方法论。:将发电机组调度分解为QUBO(启停决策)与非QUBO(功率分配)子问题,通过3块ADMM协调;c_i(t) $随外部环境(如电力需求、市场价格)动态调整。量子-经典混合架构与动态QUBO建模的结合,标志着优化计算从。:每分钟根据市场波动调整QUBO的收益率-风险系数;

百态·数智思维 | 聚焦大数据、量化与未来AI 1334

codeforces 959 D. Mahmoud and Ehab and another array construction task

题目链接 陈瑜推荐的好题。 就是给你一个数字串,让你找到一个字典序最小的串,满足这串中的数组两两互质,并且字典序不小于原串。 #include<bits/stdc++.h> #define mem(a,b) memset((a),b,sizeof(a)) #define de cout<<endl<<endl<<endl typedef lo...

flyzer的博客 246

Unity3D安装:离线安装 Unity

Unity 下载助手 (Download Assistant) 支持离线部署。在这种部署方式中,可下载用于安装 Unity 的所有文件,然后生成脚本以便在未接入互联网的其他计算机上重复相同的安装。运行下载助手,并在一台计算机上正常安装 Unity。此计算机必须有足够的可用磁盘空间来下载所有文件。单击下拉选单并选择 __Custom__,然后选择要将文件下载到的位置。打开 PC 的文件管理器,导航到之前指定的自定义位置文件夹,然后在该文件夹内查找。整理翻译,转载请注明出处!

ygtu2018的博客 3254

Verilog语法之十:过程块(initial和always)

我将Verilog的语法进行了总结,写了13篇文章,让小白“快速见识猪如何跑”,每一篇讲解一类语法,结合正确的示例代码和错误的示例代码,有的章节对个别语法进行了归纳总结,帮助初学者加深理解。

航天领域资深码农,型号经验丰富,一线干货分享 1671

Codeforces Round #473 (Div. 2) ABCDE

A. Mahmoud and Ehab and the even-odd gametime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputMahmoud and Ehab play a game called the even-odd game. Eha...

J. Cole 895

Coze实战:解锁多Bot协同与条件分支工作流的奥秘

本文详细介绍了在字节跳动Coze平台实现多Bot协同与条件分支工作流的方法。首先阐述了Coze平台的功能优势,包括丰富的插件、知识库和工作流功能。随后分步骤讲解了多Bot协同的实现:从准备工作、创建Bot到协同配置,并提供了电商客服的实例演示。在条件分支工作流部分,详细说明了条件节点的作用类型、条件设定方法以及具体配置操作,强调测试优化的重要性。最后通过电商平台综合案例,展示了多Bot协同与条件分支的实际应用效果,并针对常见问题提供解决方案。文章为开发者在Coze平台上构建智能应用提供了实用指导,有助于提升

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 450

Codeforces 959-D Mahmoud and Ehab and another array construction task (贪心思想)

Problem Description Mahmoud has an array a consisting of n integers. He asked Ehab to find another array b of the same length such that: b is lexicographically greater than or equal to a. b...

wcxyky的博客 268

【openwrt-21.02】T750 openwrt 双系统说明及切换方法

高度集成的 T750 平台大幅减少组件数量,为产品设计者提供更小的尺寸和更低的功耗。T750 采用先进的 7nm 制程,高度集成 5G 调制解调器和四核 Arm CPU,提供较强的功能和配置,设备制造商得以打造精巧的高性能 CPE 产品,如固定无线接入(FWA)路由器和移动热点。3. preloader 加载并启动 A 系统,若 A 系统的任一启动阶段加载失败,preloader 将重新加载并启动 A 系统 3 次,若 3 次均失败,则自动切换至 B 系统,加载并启动 B 系统。A/B 系统切换流程如下。

wgl307293845的博客 1414

大疆视觉算法面试,手推极线几何这关刷掉了一半人

摘要:大疆机器视觉算法工程师面试重点考察目标检测工程优化、深度估计几何原理和视觉SLAM全流程。目标检测侧重模型压缩和部署优化,需掌握知识蒸馏、量化及算子融合;深度估计要求推导双目几何并理解单目深度恢复方法;视觉SLAM需熟悉前后端流程及ORB-SLAM3/VINS-Mono区别。面试常要求手推PnP等公式,注重实践能力。准备需重点练习公式推导和代码实现,掌握工程落地细节。

郑伟强dev的专栏 192

Codeforces-959D Mahmoud and Ehab and another array construction task(贪心)

题意: 给定数组a,求大于或者等于数组a字典序的数组b,满足任意i,j,gcd(bi, bj) = 1。并且是在所有满足条件中的字典序最小的一个。 思路: 任意一对数互质,可以通过标记其质因子来解决,在找到第一个违背互质的数时,只需要找出大于该数的最小的一个与前面所有数互质的数,在此之后,要想保证字典序最小,便是所有可用的质数从小向大取。 代码: #include using name

yo_bc的博客 663

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

CF959D Mahmoud and Ehab and another array construction task [乱搞]

D. Mahmoud and Ehab and another array construction task time limit per test3 seconds memory limit per test256 megabytes inputstandard input outputstandard output Mahmoud has an array a consisting of n...

MekakuCityActors的博客 474

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

CF959D Mahmoud and Ehab and another array construction task 数学

Mahmoud has an array a consisting of n integers. He asked Ehab to find another array b of the same length such that: b is lexicographically greater than or equal to a. bi ≥ 2. b is pairw...

loooooog的博客 198

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

[CF959D]Mahmoud and Ehab and another array construction task题解

解法 非常暴力的模拟。 一开始吧\(1 -> 2 \times 10^6\)全部扔进一个set里,如果之前取得数都是与原数组相同的,那么lower_bound一下找到set中大于等于它的数,否则直接取set中最小的数,然后枚举该数的所有质因数及其倍数,类似埃拉托斯特尼筛法删掉它们(如果它们在集合中的话)。 P.S. 不要用STL algorithm的lower_bound,极慢,用STL内部...

weixin_30613433的博客 171

959D--Mahmoud and Ehab and another array construction task

题目 Mahmoud has an array a consisting of n integers. He asked Ehab to find another array b of the same length such that: b is lexicographically greater than or equal to a. bi ≥ 2. b is pairwise coprime...

树莓一只猪 311

Codeforces 959D D. Mahmoud and Ehab and another array construction task

一个老学长让我做的一个好题,刚开始题意没读对,想了好长时间,没想法,后来由一个女生给我讲了一下,我才有了想法, 虽然T了N遍,总算过了,下面给大家分享一下。D. Mahmoud and Ehab and another array construction tasktime limit per test3 secondsmemory limit per test256 megabytesinput...

Amo丶 450

CF473 DIV2 D. Mahmoud and Ehab and another array construction task

本题基于一种贪心的思路,即:能不改就不改,但是一旦改了以后,后面的都改;具体而言,就是从前往后扫,如果当前位置的数不与前面的数冲突的话,那么我们就不改动他。但是,一旦有一个数冲突了,根据题意我们肯定要换一个更大的数,那么此时整个序列肯定就比原序列大了,那么后面的数我们肯定都要换尽可能小的。 同时,还要考虑的一个问题是,如何保证后面选的数不与前面已经选过的数冲突。方法非常暴力:我们预处理出每个数的...

HumveeA6的博客 475

Codeforces Round #435 (Div. 2) E. Mahmoud and Ehab and the function

传送门 E. Mahmoud and Ehab and the function time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Dr. Evil is i

twh233的算法blog 759

CodeForce 959F Mahmoud and Ehab and yet another xor task(思维+离线处理)

大致题意:给你n个数字和q个询问。每个询问为l、x,意思是在前l个数字中取一个子集,求子集的异或和为x的子集个数。 通常想法:dp。令dp[i][j]表示前i个数字的子集异或和为j的个数,有转移方程dp[i][j]=dp[i-1][j]+dp[i-1][j^a[i]]。分别代表a[i]取与不取。时空复杂度O(N*2^K),K表示数字二进制最高位。显然,对于N为1e5,K为20的数据范围来说,时空上都不满足我们的要求。 仔细的观察可以发现,dp中其实很多的枚举与转移都是浪费的

alpc_qleonardo 648

洛谷P4016

题目标签写着网络流诶….那么问题就是如何建图了…看到题解里一波大神用平均值来计算…但是蒟蒻没想到诶…所有我就比较暴力了…. 对于每个点一拆为二(ia,ib),建立超源超汇,然后对于每个点,从源点s向其连一条容量为c[i],费用为0的边,从ia向ib连一条容量为无限,费用为0 的边(因为可以不停的把别的地方的货物搬到ia,然后从ib搬到下一个点去,ia到ib搬运当然是不用钱的),然后从ib向汇点t...

HumveeA6的博客 367

Codeforces-959D Mahmoud and Ehab and another array construction task 素数筛+质因数分解

题意:    给一个数组a,求大于或者等于数组a的字典序的数组b,其中b满足数组内任意数互质,bi&gt;=2。并且是所有满足条件中的字典序最小的一个。题解:         这道构造题首先要考虑的就是如果a数组内的数互质的话,就不需要构造出b数组,直接输出a数组就可以了。那么我们怎么判断整个数组内的数是否互质呢?不能单单的左右判断就完事(意思就是假如,2,3,4判断是否互质,2和3不互质,3和4...

Start_to_crazy的博客 359

Codeforces-959D Mahmoud and Ehab and another array construction task(数论,质因子分解)

D. Mahmoud and Ehab and another array construction tasktime limit per test3 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputMahmoud has an array a consisting of n inte...

sher杨的博客 384

D. Mahmoud and Ehab and another array construction task(因子标记)

D. Mahmoud and Ehab and another array construction tasktime limit per test3 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputMahmoud has an array a consisting of n inte...

SunMoonVocano的博客 419

Divide by Zero 2018 and Codeforces Round #474 (Div. 1 + Div. 2, combined) C. Subsequence Counting

题目链接:http://codeforces.com/contest/960/problem/C 题意:给你两个整数X,d, 找出一个数组满足以下条件: 除去Maximum_element_of_the_subsequence  -  Minimum_element_of_subsequence  ≥ d 的子序列后还剩x个子序列 算法:暴力 思路:把数组元素个数对应的子序列个数列出,会发现:...

凝望的博客 327

codeforces959D. Mahmoud and Ehab and another array construction task 因数的递归

D. Mahmoud and Ehab and another array construction task time limit per test 3 seconds memory limit per test 256 megabytes input standard input output standard output Mahmoud has an array a co...

u011535421的博客 347
上一篇: cf 982D Shark
下一篇: cf 985E Pencils and Boxes
max_kibble
博客等级 码龄11年 2粉丝 110原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值