jzoj3895-数字对【RMQ,GCD,二分答案,单调队列】

正题


题目大意

一个序列aaa
对于[L..R][L..R][L..R]ak∈[L..R]∣ai∈[L..R]a_k \in [L..R]|a_i\in[L..R]ak[L..R]ai[L..R]则这个一个特殊区间。
求最长特殊区间。


解题思路

RMQRMQRMQ求区间GCDGCDGCD,然后二分答案。

之后aka_kak肯定是这个区间最小的,单调队列维护一下(或者RMQRMQRMQ维护),然后判断区间GCDGCDGCD是否等于aka_kak


codecodecode

#include<cstdio>
#include<queue>
#include<cmath>
#include<cctype>
#include<algorithm>
#define N 500010
using namespace std;
deque<int> q;
int n,a[N],ans[N],tot,f[N][23],lg[N];
int read() {int x=0,f=1; char c=getchar();while(!isdigit(c)) {if(c=='-')f=-f;c=getchar();}while(isdigit(c)) x=(x<<1)+(x<<3)+c-48,c=getchar();return x*f;
}
void print(int x){if (x>9) print(x/10); putchar(x%10+48); return;
}
void Keep(int x){while(!q.empty()&&q.front()<x)q.pop_front();
}
void Push(int x){while(!q.empty()&&a[q.back()]>a[x])q.pop_back();q.push_back(x);
}
int Gcd(int l,int r){int z=lg[r-l+1];return __gcd(f[l][z],f[r+1-(1<<z)][z]);
}
int check(int x){int ans=0;while(!q.empty())q.pop_front();for(int i=1;i<=x;i++)Push(i);for(int i=x+1;i<=n;i++){Keep(i-x);Push(i);int w=a[q.front()];if(Gcd(i-x,i)==w)ans++;}return ans;
}
void write(int x){while(!q.empty())q.pop_front();for(int i=1;i<=x;i++)Push(i);for(int i=x+1;i<=n;i++){Keep(i-x);Push(i);int w=a[q.front()];if(Gcd(i-x,i)==w)print(i-x),putchar(' ');}
}
int main()
{n=read();lg[0]=-1;for(int i=1;i<=n;i++)a[i]=read(),f[i][0]=a[i],lg[i]=lg[i/2]+1;for(int j=1;(1<<j)<=n;j++)for(int i=1;i+(1<<j)-1<=n;i++)f[i][j]=__gcd(f[i][j-1],f[i+(1<<j-1)][j-1]);int l=0,r=n;while(l<=r){int mid=(l+r)/2;if(check(mid)) l=mid+1;else r=mid-1;}print(check(r));putchar(' ');print(r);putchar('\n');write(r);
}

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

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

相关文章

Hadoop生态hive(一)介绍

一、Hive是什么 起源自facebook由Jeff Hammerbacher领导的团队&#xff0c;构建在Hadoop上的数据仓库框架。设计目的是让SQL技能良好&#xff0c;但Java技能较弱的分析师可以查询海量数据。2008年facebook把hive项目贡献给Apache。 由facebook开源&#xff0c;最初用于解决海量…

jzoj3896-战争游戏【tarjan,割点,点双联通分量】

正题 题目大意 求每个点是多少个点对之间路径的必经点。 解题思路 首先若一个点是在点不是割点&#xff0c;那么答案就是n−1n-1n−1&#xff0c;因为这个点不是除了它自己以为任何点对的必经点。 之后我们记录每个可以割掉的联通分量的大小。对于一个割点&#xff0c;是两种…

使用混合云的SQL Server

近期发布的Microsoft SQL Server 2017&#xff0c;表明Microsoft公司正寻求不断降低其所交付的工具对平台的绑定。在SQL Server 2017中&#xff0c;这一趋势可以从“混合云”&#xff08;Hybrid Cloud&#xff09;术语和多平台本质这两个方面得以证实。下面让我们分别一窥这两个…

Hadoop生态hive(二)安装

一、安装模式 内嵌模式&#xff1a;元数据保持在内嵌的Derby模式&#xff0c;只允许一个会话连接 本地独立模式&#xff1a;在本地安装Mysql&#xff0c;把元数据放到Mysql内 远程模式&#xff1a;元数据放置在远程的Mysql数据库 官方文档&#xff1a; https://cwiki.apac…

.NET Core多平台项目模板eShopOnContainers编译手记

之前写了一个功能性的文件上传asp.net core的小程序&#xff0c;加上点七七八八的东西&#xff0c;勉强能够应付了&#xff0c;打算学习一下微软的官方.NET CORE微服务示例https://github.com/dotnet-architecture/eShopOnContainers。这个例子很全面地展现了微服务、docker以及…

欢乐纪中某B组赛【2019.1.25】

前言 还算OKOKOK 成绩 RankRankRank是有算别人的 RankRankRankPersonPersonPersonScoreScoreScoreAAABBBCCC4442017myself2017myself2017myself1801801801001001008080800005552017zyc2017zyc2017zyc1601601606060601001001000001111112017hzb2017hzb2017hzb14014014060606080…

如何改变Idea的背景

进入Idea 按下ctrlshifta 点击set background 选择自己准备好的图片地址&#xff0c;就可以更改背景了 更改后效果 关于接口的插件 GsonFormat插件 安装还是和别的插件一样&#xff0c;在plugin里搜索GsonFormat&#xff0c;下载并重启 然后在model里的类 按下alts 出现 将…

jzoj1252,P5194-天平【dfs,set】

正题 题目大意 nnn个砝码&#xff0c;选择若干个要求重量不超过ccc的情况下最重。 解题思路 拆成两部分来dfsdfsdfs&#xff0c;第一部分将答案加入setsetset。 第二部分对于每个答案在setsetset中查询。 时间复杂度O(2n2logn)O(2^{\frac{n}{2}}\ log\ n)O(22n​ log n) cod…

包依赖

thymeleaf <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency>

TFS在项目中Devops落地进程(上)

作为一名开发,经过近2年折腾,基于TFS的Devops主线工程大体落地完毕。 在此大体回忆下中间的各种历程。 开始之前简单说下什么是TFS(Team Foundation Server)。 TFS是微软推出的一款ALM&#xff08;Application Lifecycle Management)管理工具。 透过TFS你将能获取到从代码版本管…

Hadoop生态hive(三)Hive QL介绍

一、表 创建表 CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name CREATE TABLE 创建一个指定名字的表。Hive 创建内部表时&#xff0c;会将数据移动到数据仓库指向的路径&#xff1b; EXTERNAL 关键字可以让用户创建一个外部表&#xff0c;在建表的同时指定一个指向实…

抖音上非常火的旋转图快速部署

本教程不需要你有服务器&#xff01; 本教程不需要你有服务器&#xff01; 本教程不需要你有服务器&#xff01; 点击我看旋转图 总共两步 1、注册一个码云账号 2、新建一个仓库&#xff0c;上传文件即可 1、注册账号的话&#xff0c;直接浏览器搜索码云&#xff0c;手机号…

hive命令出现问题Failed with exception Java.io.IOException:java.lang.IllegalArgumentException: java.NET.URI

转载自 hive命令出现问题Failed with exception Java.io.IOException:java.lang.IllegalArgumentException: java.NET.URI 一&#xff0c;问题描述&#xff1a;    登录到hive数据仓库后&#xff0c;输入一些命令&#xff0c;例如&#xff08;show databases &#xff0c…

Microsoft的现代数据管理

PASS 2017峰会是面向SQL Server及Microsoft相关数据技术用户的大会。在大会的第一天&#xff0c;Microsoft的Rohan Kumar先生到场做了开幕式的主题演讲&#xff0c;并借此机会展示了Microsoft在SQL Server和Azure数据库方面的最新进展。 Kumar的演讲涉及数据、人工智能和云这三…

jzoj1274-游历的路线【分层图,SPFA】

正题 题目大意 nnn个点每个点之间的边权是一个周期。 求从111出发经过mmm条边到nnn的最小权值 解题思路 分成mmm层表示天数&#xff0c;然后连边跑SPFASPFASPFA codecodecode #include<cstdio> #include<queue> #include<cstring> #define N 40100 using …

vue 3.4x以上如何改变项目运行端口号

我用3.4版本的vue-cli构建了一个vue项目&#xff0c;然后我想修改项目运行之后的访问端口 在网上查了一下&#xff0c;很多都是2.0的版本&#xff0c;查来查去都说是什么在 config目录下index.js文件中修改端口号。。。。。。。 都抄来抄去的 新的vue项目目录结构下并没有con…

Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient

转载自 Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient hive初始化&#xff08;mysql为元数据库&#xff09;完成后&#xff0c;执行SQL语句报错 经过各种查询资料&#xff0c;找到了一种解决办法&#xff0c;大家可以参考。 首先进…

jzoj4224-食物【多重背包】

正题 题目大意 nnn个物品&#xff0c;用空间换价值。mmm个方式&#xff0c;用价钱换空间。 要求价值超过p的情况下价钱最低。 解题思路 先算出超过ppp至少要多少空间。然后在算出这个空间至少需要多少价钱。 codecodecode #include<cstdio> #include<cstring> #…

Asp.net core应用在 Kubernetes上内存使用率过高问题分析

原文&#xff1a;https://blog.markvincze.com/troubleshooting-high-memory-usage-with-asp-net-core-on-kubernetes/ ps&#xff1a;我不是死板翻译原文的&#xff0c;尽量的通俗一点&#xff0c;如有不对欢迎指出&#xff0c;谢谢哈。 在生产环境中&#xff0c;我们把asp.ne…

vue cli 4.x打包后如何部署到tomcat服务器上

使用npm run build打包好dist后&#xff0c;不能直接打开里面的index.html&#xff0c;否则页面是一片空白 这时候我们就需要用服务器来代理我们的页面&#xff0c;可以使用ningx&#xff0c;tomcat&#xff0c;或者apache&#xff0c;这里我们使用tomcat当作范例 找到tomcat的…