Magic Number Group

ops/2024/9/20 3:58:49/ 标签: 算法, 数据结构, 数论

登录—专业IT笔试面试备考平台_牛客网、

把每个数的质因数分解出来,用莫队做,找区间众数即可

// Problem: Magic Number Group
// Contest: NowCoder
// URL: https://ac.nowcoder.com/acm/contest/21592/G
// Memory Limit: 524288 MB
// Time Limit: 2000 ms
// 
// Powered by CP Editor (https://cpeditor.org)#include<iostream>
#include<cmath>
#include<algorithm>
#include<vector>
using namespace std;
const int N=1e6+9;
int a[N];
int L[N],R[N],pos[N];
int ans[N],num[N],c[N];//答案,出现i次,出现为i的数量
int res,p;
vector<int> v[N];
struct Q{int l,r,id;bool friend operator < (const Q &a,const Q &b){return pos[a.l]^pos[b.l]?pos[a.l]<pos[b.l]:pos[a.l]&1?a.r<b.r:a.r>b.r;}
}que[N];
void work(int id,int x){for(int i=2;i<=x/i;i++){if(x%i==0){v[id].push_back(i);while(x%i==0){x/=i;}}}if(x>1){v[id].push_back(x);}
}
void add(int pos){for(auto & i : v[pos]){num[c[i]]--;c[i]++;num[c[i]]++;res=max(res,c[i]);//维护最大}
}
void del(int pos){for(auto & i : v[pos]){num[c[i]]--;if(res==c[i] && !num[c[i]]){//如果不存在就减少res--;}c[i]--;num[c[i]]++;}
}
void solve(){int n,q;cin>>n>>q;for(int i=1;i<=n;i++){cin>>a[i];}for(int i=1;i<=n;i++){v[i].clear();work(i,a[i]);}for(int i=1;i<=q;i++){cin>>que[i].l>>que[i].r;que[i].id=i;}int t=sqrt(n);for(int i=1;i<=t;i++){L[i]=(i-1)*t+1;R[i]=i*t;}if(R[t]<n){t++;L[t]=R[t-1]+1;R[t]=n;}for(int i=1;i<=t;i++){for(int j=L[i];j<=R[i];j++){pos[j]=i;}}sort(que+1,que+1+q);int l=1,r=0;for(int i=1;i<=q;i++){while(que[i].l>l){del(l++);}while(que[i].l<l){add(--l);}while(que[i].r>r){add(++r);}while(que[i].r<r){del(r--);}ans[que[i].id]=res;}for(int i=1;i<=q;i++){cout<<ans[i]<<'\n';}while(l<=r){//清空del(l++);}res=0;//清空
}
int main(){ios::sync_with_stdio(false);cin.tie(0),cout.tie(0);int t;cin>>t;//多组while(t--){solve();}return 0;
}


http://www.ppmy.cn/ops/93855.html

相关文章

如何在 Windows 上安装 FastReport .NET 及其组件

要安装 FastReport.NET 软件及其组件&#xff0c;您需要在 cpanel 中下载安装程序分发并 运行它。当使用具有 UAC&#xff08;用户帐户控制&#xff09;的操作系统时&#xff0c;您需要同意运行该软件。 FastReport .NET 是适用于.NET Core 3&#xff0c;ASP.NET&#xff0c;M…

无线领夹麦克风六大常见缺陷曝光:拒绝冲动谨防劣质产品!

​在当下这个全民皆为媒体的时代大潮中&#xff0c;视频分享已然成为了引领风尚的指向标。在自媒体领域竞争愈发激烈的态势下&#xff0c;若要在这片广阔海洋中扬帆远航&#xff0c;优秀的作品毫无疑问是吸引观众的关键所在。而想要塑造出这样的卓越之作&#xff0c;除了需要创…

Linux——进程(2)

一、父子进程的关系 子进程是父进程的副本。 子进程获得父进程数据段&#xff0c;堆&#xff0c;栈&#xff0c;正文段共享。 在fork之后&#xff0c;一般情况哪个会先运行&#xff0c;是不确定的。 如果非要确定那个要先运行&#xff0c;需要IPC机制。 1、区别 1&…

ZAN与Mysten Labs合作推进Web3基础设施开发

Mysten Labs是一家Web3基础设施公司&#xff0c;也是Sui区块链的开发公司&#xff0c;今天宣布与蚂蚁数字科技的技术品牌ZAN建立合作伙伴关系。 通过整合Sui&#xff0c;ZAN旨在加速其Web3应用程序的开发和采用。该合作将专注于为Mysten Labs在两个关键领域提供技术支持&#…

oracle 数据中lsnrctl 是干啥的

突然发现lsnrctl stop 之后&#xff0c;依然可以启动数据库 就感觉怪怪的&#xff0c;一直以为这个是数据库的守护进程&#xff0c;原来不是。。。。 lsnrctl 是 Oracle 监听器控制实用程序的命令行界面工具&#xff0c;用于管理 Oracle Net 服务监听器。监听器是 Oracle 网络…

Python爬虫——爬取bilibili中的视频

爬取bilibili中的视频 本次爬取&#xff0c;还是运用的是requests方法 首先进入bilibili官网中&#xff0c;选取你想要爬取的视频&#xff0c;进入视频播放页面&#xff0c;按F12&#xff0c;将网络中的名称栏向上拉找到第一个并点击&#xff0c;可以在标头中&#xff0c;找到…

汽车精密设计、无人机外形优化总是遇难题?CFD参数优化详解2来袭

数值仿真的参数优化 在上期文章中&#xff0c;我们给大家带来了机翼多学科优化、拟合试验曲线、一维CFD模型参数的DOE和回归分析三个参数优化案例&#xff0c;本期文章将继续为各位讲解多个 Altair CFD 参数优化案例&#xff0c;一起来看看吧。 案例&#xff1a;汽车排气管形状…

7.2 我们机房断网了!--图文解析

7.2 我们机房断网了&#xff01;–图文解析 原文链接&#xff1a;https://juejin.cn/post/7399569706183049250 原文作者&#xff1a;哔哩哔哩技术团队 1、背景 原文&#xff1a; 2024 年 7 月 2 日 10:04&#xff0c;我站机房 A 公网物理光缆中断&#xff0c;导致机房 A …

Electron 开发桌面应用程序用于对接USB Audio Class协议

开发用于对接USB Audio Class协议的Electron桌面应用程序是一个复杂的任务&#xff0c;可能涉及多个开源库和项目的组合。以下是一些开源项目和库&#xff0c;它们可以帮助你实现这个目标&#xff1a; 1. Electron Electron 是一个用于构建跨平台桌面应用程序的框架。你可以使…

go语言后端开发学习(五)——如何在项目中使用Viper来配置环境

前言 在之前的文章中我们就介绍过用go-ini来读取配置文件,但是当时我们在介绍时说了他只能读取.ini格式的配置文件所以局限性较大,这里我们介绍一个适用范围更大的配置管理第三方库——Viper。 什么是Viper Viper是适用于Go应用程序&#xff08;包括Twelve-Factor App&#…

Ubuntu系统的基础操作和使用|Linux|安装|网络连接|更新与升级系统|系统维护|故障排除|监控|桌面环境|虚拟机|快捷键

目录 1. Ubuntu系统的安装与初步设置 1.1 下载与安装Ubuntu 1.2 创建用户和设置密码 1.3 配置网络连接 1.4 更新与升级系统 2. Ubuntu的基本操作 2.1 文件与目录管理 2.2 系统进程管理 2.3 软件安装与管理 2.4 权限与用户管理 3. 系统维护与故障排除 3.1 系统日志查…

HarmonyOS鸿蒙开发岗位面试中关于组件的问题总结

文章目录 1. 鸿蒙组件的基本概念2. 组件的使用3. 布局管理4. 组件间通信5. 组件化开发6. 性能优化7. 实战应用 鸿蒙应用开发岗位面试中关于鸿蒙组件的问题&#xff0c;通常会涉及多个关键知识点&#xff0c;这些知识点涵盖了鸿蒙组件的基本概念、使用、布局管理、性能优化、组件…

Go语言并发编程实战:掌握并发模型,提升应用性能

1. 引言 1.1 并发编程的重要性 在现代软件开发中&#xff0c;并发编程已经成为了一种不可或缺的技术。随着多核处理器的普及和云计算的兴起&#xff0c;应用程序需要能够有效地利用并发处理能力&#xff0c;以提高性能和用户体验。并发编程使得程序能够在同一时间内处理多个任…

Qt Xlsx使用教程、Qt操作Excel、Qt生成Excel图表、跨平台不依赖Office 直接使用源码

1.Qt Xlsx库简介 官方文档&#xff1a;Qt Xlsx | QtXlsx 0.3 (debao.me) 下载地址&#xff1a;dbzhang800/QtXlsxWriter: .xlsx file reader and writer for Qt5 (github.com) CSDN下载地址&#xff1a;QtXlsxWriter-master源码资源-CSDN文库 2.源码取出 3.目录结构 再根目…

股指期货套期保值中的展期管理有哪些?

在复杂的金融市场环境中&#xff0c;展期作为一种重要的风险管理工具&#xff0c;被广泛应用于期货交易中&#xff0c;特别是当投资者需要对长期资产进行套期保值时。展期的核心思想在于&#xff0c;通过连续替换高流动性的近月期货合约来替代流动性较差的远月合约&#xff0c;…

JS【详解】对象的内部属性 vs 内部方法

每个JS 对象都有很多内部属性和方法&#xff0c;仅供 JS 引擎管理和操作对象使用&#xff0c;对开发者不可见&#xff0c;只能用特殊的方法访问和修改&#xff08;不建议修改&#xff09; 了解它们可以帮助我们更好的理解对象的行为&#xff0c;无需深究其具体实现 下文中&am…

力扣:496. 下一个更大元素 I、503. 下一个更大元素 II

496. 下一个更大元素 I 这里我们采用单调栈来写这道题。 首先遍历nums2,并新开一个数组ant&#xff0c;存储对应nums2的下一个更大元素&#xff0c;这里采用单调栈&#xff0c;从栈顶到栈底是递增序列。 然后我们遍历a,再遍历b找到对应nums1nums2&#xff0c;然后nums1存储a…

*算法训练(leetcode)第四十五天 | 101. 孤岛的总面积、102. 沉没孤岛、103. 水流问题、104. 建造最大岛屿

刷题记录 101. 孤岛的总面积DFSBFS 102. 沉没孤岛DFSBFS *103. 水流问题*104. 建造最大岛屿 101. 孤岛的总面积 题目地址 本题要求不与矩阵边缘相连的孤岛的总面积。先将与四个边缘相连的岛屿变为海洋&#xff0c;再统计剩余的孤岛的总面积。无需再标识访问过的结点&#xff…

利用Python轻松从视频中抽取帧

利用Python轻松从视频中抽取帧 安装依赖示例代码参数说明使用示例 在做CV项目的时候&#xff0c;有时候可能需要从视频中抽取一些有价值的图片&#xff0c;可以使用 Python 的 opencv 库来从视频中抽取帧。以下是一个示例程序&#xff0c;展示了如何从视频中抽取帧&#xff0c;…

单调栈(算法篇)

算法之单调栈 注意&#xff1a;单调栈是一种数据结构&#xff0c;并非是一种算法&#xff0c;但是我们做一些算法题的时候&#xff0c;这种单调性结构有妙用&#xff0c;所以我姑且放在算法篇进行讲解 单调栈 概念&#xff1a; 单调栈是一种数据结构&#xff0c;但是因为经…