F. Array Stabilization (GCD version)

news2024/11/24 13:10:11

题目链接:传送门

 

思路:

  • 进行预处理的算法模板:
  • for(int i=1;(1<<i)<=n;i++)
        	for(int j=1;j+(1<<i)-1<=n;j++)
         	   st[j][i]=gcd(st[j][i-1],st[j+(1<<(i-1))][i-1]);
    
  • 进行查询的算法模板
int check(int i,int mid){
	int k=log2(mid-i+1);
	return gcd(st[i][k],st[mid-(1<<k)+1][k]);
}

 

AC代码:

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e6+10;
int a[N],f[N/2][30],_gcd;
int n,ans=-5;
void unit(){
	for(int i=1;i<=20;i++){
		for(int j=1;j+(1<<i)-1<=n*2;j++){
			f[j][i]=__gcd(f[j][i-1],f[j+(1<<(i-1))][i-1]);
		}
	}	
}
int check(int i,int mid){
	int op=log2(mid-i+1);
	return __gcd(f[i][op],f[mid-(1<<op)+1][op]);
}
void bs(int l,int r,int i){
	while(l<r){
		int mid=(l+r)/2;
		if(check(i,mid)==_gcd) r=mid;
		else l=mid+1; 
	}
	l--;
	ans=max(ans,l-i+1);
}
void solve(){
	cin>>n;
	int flag=0;
	for(int i=1;i<=n;i++){
		cin>>a[i];
		a[i+n]=a[i];
		if(a[i]!=a[1]){
			flag=1;
		}
		f[i+n][0]=f[i][0]=a[i];
		if(i==1) _gcd=a[i];
		else _gcd=__gcd(_gcd,a[i]);
	}
	if(flag==0){
		cout<<"0\n";
		return ;
	}
	unit();
	for(int i=1;i<=n;i++){
		bs(i,i+n-1,i);
	} 
	cout<<ans<<"\n";
	return ;
}
signed main(){
	ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
	int t;
	cin>>t;
	while(t--){
		ans=-1;
		solve();
	}
} 

 

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

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

相关文章

【Mybatis】Mybatis的动态SQL、缓存机制-三

唠嗑部分 之前我们说了Mybatis的基本操作、关系映射等等&#xff0c;相关文章&#xff1a; 【Mybatis】简单入门及工具类封装-一 【Mybatis】如何实现ORM映射-二 本篇文章和大家说的是Mybatis的动态SQL、缓存机制 言归正传 一、动态SQL MyBatis的映射文件中支持在基础SQL上…

系统分析师:六、企业信息化战略与实施

目录 一、信息与信息化概念 1.1 信息的概念 1.2 信息化的概念 二、信息系统 2.1 信息系统的概念 2.2 信息系统的类型 2.3 信息系统的生命周期 2.4 系统建模 2.5 信息系统战略规划 2.6 信息化开发方法 三、电子政务 四、企业资源计划(ERP) 五、系统集成 一、信息与信息…

k8s1.20版本部署Redis集群(三主三从)——2023.05

文章目录 一、准备工作二、逻辑图三、部署Redis集群1. 安装NFS服务2. 修改API配置3. 创建持久卷PVC4. 创建Redis服务4. 组建Redis集群5. 验证集群 一、准备工作 主机规划 节点IPk8s-master1192.168.2.245k8s-master2192.168.2.246k8s-master3192.168.2.247k8s-node1192.168.2…

【MySQL】-- 库的操作

目录 库的操作 显示数据库 创建数据库 创建数据库案例 删除数据库 删除数据库案例 字符集和校验规则 字符集 校验规则 小结 查看数据库支持的字符集 查看数据库支持的校验规则 校验规则对数据库的影响 不区分大小写 区分大小写 进行查询 结果排序 修改数据库…

我爱我家联合第四范式发布房产经纪大模型

5月15日&#xff0c;在我爱我家年度品牌战略发布会上&#xff0c;我爱我家联合第四范式发布“房产经纪大模型”&#xff0c;将大模型能力用于提升行业生产力的原点&#xff1a;赋能经纪人。本次发布的房产经纪大模型1.0版本已经具备了合格经纪人的基本能力&#xff0c;‍‍‍‍…

leetcode 不同路径详解

文章目录 62 . 不同路径题目详情动态规划之带备忘录实现Java完整代码 63. 不同路径 II题目详情动态规划之带备忘录实现Java完整代码 62 . 不同路径 题目详情 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只…

JavaSE进阶(二)—— 面向对象进阶(包、权限修饰符、抽象类、多态)

目录 一、包 1. 什么是包 2. 导包 二、权限修饰符 1. 什么是权限修饰符 2. 权限修饰符的分类和具体作用范围 3. 学完权限修饰符需要具备如下能力 三、final 1. final的作用 2. final修饰变量的注意 四、常量 1. 常量概述和基本作用 1.1 常量做信息配置的原理、优…

【操作系统】I/O管理

文章目录 I/O设备的基本概念和分类I/O设备的分类 I/O控制器I/O设备的组成I/O控制器的组成I/O控制器的两种寄存器编址方式 I/O控制方式程序直接控制方式中断驱动方式DMA方式通道控制方式 I/O软件的层次结构用户层软件设备独立性软件六大功能逻辑设备表—LUT 设备驱动程序中断处理…

免交互的使用

免交互的使用 一、免交互二、小实验三、利用脚本完成的小实验三、Expect 一、免交互 Here Document 免交互 使用I/O重定向的方式将命令列表提供给交互式程序或命令&#xff0c;比如ftp、cat或者read命令。 免交互时标准输入的一种替代品可以帮助脚本开发人员不必使用临时文件来…

MySQL查询练习题

一&#xff0e;编程题 有三张表&#xff0c;结构如下&#xff1a; Student(学号StuId,姓名StuName,性别StuSex,出生年月StuBirth) Course(课程号CouId,课程名CouName,授课教师CoouTeacher) SC(学号StuId,课程号CouId,成绩Score,授课教师CouTeacher) 用标准SQL语句完成下列操作…

第六章 介绍Productions - 其他Production 选项

文章目录 第六章 介绍Productions - 其他Production 选项用户门户工作流业务活动监控Alerts发布和订阅消息传递Message Bank 第六章 介绍Productions - 其他Production 选项 本章概述了与制作相关的其他选项。 用户门户 与 Studio 和管理门户等后端工具不同&#xff0c;用户…

免交互 (Here Document)

目录 免交互 (Here Document) 语法格式&#xff1a; 注意事项&#xff1a; 支持变量替换 多行注释 Expect 基本命令: interact 嵌入执行模式 实现 ssh 自动登录 免交互 (Here Document) 使用I/O重定向的方式将命令列表提供给交互式程序或命令&#xff0c;比如 ftp、c…

阿里云异构计算云服务器GPU、FPGA和EAIS详解

阿里云阿里云异构计算主要包括GPU云服务器、FPGA云服务器和弹性加速计算实例EAIS&#xff0c;随着人工智能技术的发展&#xff0c;越来越多的AI计算都采用异构计算来实现性能加速&#xff0c;阿里云异构计算云服务研发了云端AI加速器&#xff0c;通过统一的框架同时支持了Tenso…

量化数据运算

量化数据运算 文章目录 量化数据运算量化数据乘积仿射映射量化的矩阵运算矩阵表示 矩阵CAB量化方式表示 矩阵CAB 代码展示基于仿射映射量化的矩阵乘法矩阵乘法计算API通过仿射映射量化形式计算两个矩阵的乘法**欢迎关注公众号【三戒纪元】** 量化数据乘积 使用记号&#xff08…

【Java代码审计】XSS漏洞产生原理及其修复

XSS漏洞代码审计 前言XSS漏洞原理1、反射型XSS反射型XSS漏洞审计 2、存储型XSS存储型XSS审计 漏洞修复 前言 笔者已经很长时间没有写过笔记力&#xff0c;经过一年的摸爬滚打也算是走到了代码审计这一关&#xff0c;这些日子也还在为项目和hw周旋&#xff0c;上周终于面试完&a…

今年是很惨,但有人怒砍一大把Offer...

300万字&#xff01;全网最全大数据学习面试社区等你来&#xff01; 今天的主人公是一个应届生&#xff0c;同时也是我在训练营辅导的一名同学&#xff0c;在整体经济下行&#xff0c;互联网见顶的情况拿到包括腾讯、蚂蚁、B站等多家互联网大厂Offer。 下面是我站在求职者角度提…

DDL语句DQL语句

SQL学习笔记 DDL语句--操作数据表 /* 快捷键: insert键 在插入 和 替换模式之间切换 ctrl 字母z 撤销上一步操作 tab 往后缩进(默认4个空格) shift tab 往前缩进(默认4个空格) …

基于Java+SpringBoot+Vue学生信息管理设计和实现

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

重磅发布:《AI产品经理的实操手册(2023版)》

今天是咱们社群“AI产品经理大本营”六周年活动的最后一天&#xff0c;正式发布这份大家和我都非常期待的重磅干货——《AI产品经理的实操手册&#xff08;2023版&#xff09;》 上周发布的“AI季度资料包&#xff08;2023Q2&#xff09;”&#xff0c;适合对AI初步感兴趣的产品…

《统计学习方法》——隐马尔可夫模型(中)

概率计算算法 直接计算法 给定模型 λ ( A , B , π ) \lambda(A,B,\pi) λ(A,B,π)和观测序列 O ( o 1 , o 2 , ⋯ , o T ) O(o_1,o_2,\cdots,o_T) O(o1​,o2​,⋯,oT​)&#xff0c;计算观测序列 O O O出现的概率 P ( O ∣ λ ) P(O|\lambda) P(O∣λ)。最直接的方法就是…