多校联测13 菜

题目大意

有一个长度为 n n n的序列 a a a,你每次可以选择 gcd ⁡ \gcd gcd不为一的两个数 a i a_i ai a i + 1 a_{i+1} ai+1,将两个数合并,其值为两个数的 lcm \text{lcm} lcm,也就是删去 a i + 1 a_{i+1} ai+1,再让 a i = lcm ( a i , a i + 1 ) a_i=\text{lcm}(a_i,a_{i+1}) ai=lcm(ai,ai+1)

求是否可以进行若干次操作,使得序列 a a a的长度变为 1 1 1。如果可行,就输出 Y e s Yes Yes;否则,输出 N o No No

1 ≤ n ≤ 1 0 5 , 1 ≤ a i ≤ 700 1\leq n\leq 10^5,1\leq a_i\leq 700 1n105,1ai700


题解

首先,我们要知道,能合并的就合并,并不存在合并一个会使其他原本能合并的变得不能合并。我们可以维护一个栈,枚举每个元素,将当前元素与栈顶元素求 gcd ⁡ \gcd gcd,如果 gcd ⁡ \gcd gcd不为 1 1 1就取出栈顶元素并与当前元素合并,并继续判断接下来的栈顶元素与当前元素的 gcd ⁡ \gcd gcd是否为 1 1 1,直到不为一或栈为空。最后看栈内元素是否为 1 1 1即可。

但在合并的过程中 a i a_i ai会很大,甚至连 i n t 128 int128 int128都可能存不下。而 700 700 700以内的质数只有 125 125 125个,我们可以用 b i t s e t bitset bitset来存 a i a_i ai有哪些质因子。

虽然用了 b i t s e t bitset bitset,但还是要枚举每个 a i a_i ai是否有每个质因数,所以时间复杂度为 O ( n p ) O(np) O(np),其中 p p p 700 700 700以内质数的个数,也就是 125 125 125

code

#include<bits/stdc++.h>
using namespace std;
const int N=700;
int n,q1,a[100005],r[100005],z[705],p[705],q[100005];
bitset<130>v[100005];
void init(){for(int i=2;i<=N;i++){if(!z[i]) p[++p[0]]=i;for(int j=1;j<=p[0]&&i*p[j]<=N;j++){z[i*p[j]]=1;if(i%p[j]==0) break;}}
}
int main()
{init();scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%d",&a[i]);for(int j=1;a[i]>1&&j<=p[0];j++){if(a[i]%p[j]==0) v[i][j-1]=1;while(a[i]%p[j]==0) a[i]/=p[j];}}for(int i=1;i<=n;i++){q[++q1]=i;while(q1>=2&&(v[q[q1]]&v[q[q1-1]]).count()){v[q[q1-1]]|=v[q[q1]];--q1;}}if(q1==1) printf("Yes");else printf("No");return 0;
}

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

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

相关文章

算法专题-单调栈

定义&#xff1a; 一句话解释单调栈&#xff0c;就是一个栈&#xff0c;里面的元素的大小按照他们所在栈内的位置&#xff0c;满足一定的单调性。

GPT-4V的图片识别和分析能力

GPT-4V是OpenAI开发的大型语言模型&#xff0c;是GPT-4的升级版本。GPT-4V在以下几个方面进行了改进&#xff1a; 模型规模更大&#xff1a;GPT-4V的参数量达到了1.37T&#xff0c;是GPT-4的10倍。训练数据更丰富&#xff1a;GPT-4V的训练数据包括了1.56T的文本和代码数据。算…

【22】c++设计模式——>享元模式

享元模式的定义 1.结构型设计模式 2.旨在通过共享对象来最小化内存使用和提高性能 3.享元模式将对象分为可共享的内部状态和不可共享的外部状态&#xff0c;以便多个对象可以共享相同的内部状态。 实现步骤 1.定义抽象享元类&#xff1a;定义一个抽象享元类&#xff0c;它声…

【沧元图】玉阳宫主是正是邪,和面具人有勾结吗?现在已有答案了

Hello,小伙伴们&#xff0c;我是小郑继续为大家深度解析沧元图。 沧元图这部动漫中&#xff0c;有一个很特殊的人物&#xff0c;也是一个让人看不透的人物&#xff0c;因为很多人都不知道这个人是正还是邪&#xff0c;这个人就是玉阳宫主。 因为这个人明面上是掌管东宁府维护东…

【爬虫实战】用pyhon爬百度故事会专栏

一.爬虫需求 获取对应所有专栏数据&#xff1b;自动实现分页&#xff1b;多线程爬取&#xff1b;批量多账号爬取&#xff1b;保存到mysql、csv&#xff08;本案例以mysql为例&#xff09;&#xff1b;保存数据时已存在就更新&#xff0c;无数据就添加&#xff1b; 二.最终效果…

SecureCRT 自动测试脚本的使用方法

脚本示例&#xff08;get_batteryifo_interval_2s.vbs&#xff09;&#xff1a; Sub Main Do While(1)crt.Screen.Send "pm_client batteryinfo" & chr(13)crt.Sleep 2000 Loop End Sub 1. 解压 SecureCRT 压缩包&#xff08;网上下载&#xff09;&#xff1b…

机器学习 Q-Learning

对马尔可夫奖励的理解 看的这个教程 公式&#xff1a;V(s) R(s) γ * V(s’) V(s) 代表当前状态 s 的价值。 R(s) 代表从状态 s 到下一个状态 s’ 执行某个动作后所获得的即时奖励。 γ 是折扣因子&#xff0c;它表示未来奖励的重要性&#xff0c;通常取值在 0 到 1 之间。…

Maven项目,进行编译,使用idea的 编译功能,就是正常的,但是在终端中执行 mvn clean compile 报错

一、背景&#xff1a; Maven项目&#xff0c;进行编译&#xff0c;使用idea的 编译功能&#xff0c;就是正常的&#xff0c;但是在终端中执行 mvn clean compile 报错 报错信息&#xff1a; [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin…

XGBoost+LR融合

1、背景简介 xgboostlr模型融合方法用于分类或者回归的思想最早由facebook在广告ctr预测中提出&#xff0c;其论文Practical Lessons from Predicting Clicks on Ads at Facebook有对其进行阐述。在这篇论文中他们提出了一种将xgboost作为feature transform的方法。大概的思想…

Qt如何实现动态背景-视频背景

前言 需求&#xff1a;加载视频作为视频背景&#xff0c;在上层可以进行图片的动画化&#xff0c;或是进行其他操作。 几种方法&#xff1a; 1、直接将视频弄成一个QDialog&#xff0c; 然后再上层在弄一个QDialog,背景透明即可。但遇到一个问题&#xff0c;QDialog没办法局…

ffmpeg的重采样计算

最近在看ffmpeg的重采样计算逻辑&#xff0c;有一句话没大看懂 dst_nb_samples av_rescale_rnd(swr_get_delay(swr_ctx, src_rate) src_nb_samples, dst_rate, src_rate, AV_ROUND_UP); &#xff0c;各种请教之后&#xff0c;记录如下。 重采样后的总样本数 为什么要涵盖重采…

计算机视觉--通过HSV和YIQ颜色空间处理图像噪声

计算机视觉 文章目录 计算机视觉前言一、实现步骤二、实现总结 前言 利用HSV和YIQ颜色空间处理图像噪声。在本次实验中&#xff0c;我们使用任意一张图片&#xff0c;通过RGB转HSV和YIQ的操作&#xff0c;加入了椒盐噪声并将其转换回RGB格式&#xff0c;最终实现对图像的噪声处…

chatGLM2-6B模型LoRA微调数据集实现大模型的分类任务

【TOC】 1.chatglm介绍 ChatGLM 模型是由清华大学开源的、支持中英双语问答的对话语言模型,并针对中文进行了优化。该模型基于 General Language Model(GLM)架构,具有 62 亿参数。结合模型量化技术,用户可以在消费级的显卡上进行本地部署。 ChatGLM 具备以下特点: 充…

AlmaLinux (兼容centos)安装Geant4与ROOT

AlmaLinux 介绍 AlmaLinux OS 是一个开源、社区驱动的 Linux 操作系统&#xff0c;它填补了因 CentOS 稳定版本停止维护而留下的空白&#xff0c;同时更加强大。 安装 AlmaLinux 这个我用的是 windows 子系统进行安装 首先打开微软商店&#xff0c;然后搜索AlmaLinux&#…

使用XLua在Unity中获取lua全局变量和函数

1、Lua脚本 入口脚本 print("OK") --也会执行重定向 require("Test") 测试脚本 print("TestScript") testNum 1 testBool true testFloat 1.2 testStr "123"function testFun()print("无参无返回") endfunction te…

【想法】取代NI的 PCIe-8371

PCIe-8371 涨价非常厉害。 PCA3 https://www.terasic.com.tw/cgi-bin/page/archive.pl?LanguageEnglish&CategoryNo65&No1143 PCA3 (PCIe Cable Adapter, Gen 3) is a conversion card to connect boards with your host PC. It can support up to PCIe Gen 3 x4. …

luajit简介

LuaJIT是一种高效的Lua解释器&#xff0c;其通过即时编译技术将Lua代码转换为机器代码&#xff0c;从而提供了非常快速的执行速度。在本文中&#xff0c;我们将介绍LuaJIT的原理、使用方法以及在嵌入式Linux系统中的应用示例。 LuaJIT的原理 LuaJIT基于Lua 5.1实现&#xff0…

Java前后端交互的一些细节

在后端进行POST请求后端接收前端数据时&#xff0c;关于PrintWriter&#xff1a;参考地址 注意传进来的对象为空说明未在数据库查到拥有该账号的用户&#xff0c;所以需要告诉前端“账号密码不正确”&#xff0c;如果不为空说明有该用户&#xff0c;所以可以登录。 Overridep…

基于天牛须优化的BP神经网络(分类应用) - 附代码

基于天牛须优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码 文章目录 基于天牛须优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码1.鸢尾花iris数据介绍2.数据集整理3.天牛须优化BP神经网络3.1 BP神经网络参数设置3.2 天牛须算法应用 4.测试结果&#x…

sql注入(6), 更新注入, 堆叠注入, 宽字节注入

一, 更新注入 更新操作只返回布尔型结果, 所以无法像select语句进行多样化测试, 所以更新类的操作重点就是报错注入. 注意报错注入的前提是页面上能够看到数据库的报错信息, 利用报错信息显示我们需要的数据. 情景 修改密码时对url进行post请求, 提交密码. url: http://192.…