当前位置: 首页 > news >正文

【齿轮——优化(预处理,去重,哈希)】

题目

分析

在线暴力枚举:O(Q \cdot n \cdot n) //询问,枚举齿轮,枚举另一齿轮

采用哈希优化:不用再枚举另一齿轮 O(Q \cdot n)

预处理,但仍是暴力枚举,枚举q:O(N \cdot n) //q范围,枚举齿轮;枚举齿轮O(n \cdot N)//枚举齿轮,枚举倍数

采用去重优化:枚举齿轮和枚举倍数的复杂度之积稳定在O(n\cdot \log n)

因此采用的优化是:预处理+哈希+去重

此外要注意n=1的情况,ans[1]=1;以及哈希的时候要排除自身,不然询问1就G了

代码

#include <bits/stdc++.h>
using namespace std;

const int N = 2e5+10;

int a[N], h[N], ans[N];
int n, m;

int main()
{
	scanf("%d%d", &n, &m);
	
	for(int i = 1; i <= n; i++)
		scanf("%d", a+i), h[a[i]]++;
	
	sort(a+1, a+n+1);
	n = unique(a+1, a+n+1) - a - 1;
	
	if(n == 1) ans[1] = 1; //自身:自身=1
	for(int i = 1; i <= n; i++)
	{
    h[a[i]]--; //除去自身
    for(int j = a[i]; j < N; j += a[i])
			if(h[j])
				ans[j / a[i]] = 1;
    h[a[i]]++; //回溯
  }
				
	while(m--)
	{
		int x;
		scanf("%d", &x);
		if(ans[x]) puts("YES");
		else puts("NO");
	}
}

相关文章:

  • Python 中的线程模块
  • esp32串口通信
  • TeX Live 2025 最新版安装与中文环境配置全教程(Windows/Mac/Linux)
  • 25物理学研究生复试面试问题汇总 物理学专业知识问题很全! 物理学复试全流程攻略 物理学考研复试调剂真题汇总
  • Deepseek R1 技术报告
  • 2024 通用人工智能RAG大会实践资料(脱敏)PPT合集(22份)
  • 【洛谷贪心算法】P1090合并果子
  • preg_replace 与 str_replace 的比较与选择
  • 基于Ant Design Vue 引入 Flowable 【workflow-bpmn-modeler-antdv】流程设计器组件
  • 【Java项目】基于SpringBoot和Vue的“智慧食堂”系统
  • 2025文学研究生复试面试问题汇总 文学专业知识问题很全! 文学试全流程攻略 文学考研复试调剂真题汇总
  • Spring Boot集成Spring Ai框架【详解 搭建Spring Ai项目,以及简单的ai大模型智能体应用,附有图文+示例代码】
  • C# 数据转换
  • UniApp 按钮组件 open-type 属性详解:功能、场景与平台差异
  • c#实现modbus rtu定时采集数据
  • Spring AI:让AI应用开发更简单
  • JavaScript系列03-异步编程全解析
  • 【Markdown 语法简洁讲解】
  • OpenHarmony启动系统-U-Boot简介和源码下载与编译
  • CMU15445(2023fall) Project #4 - Concurrency Control踩坑历程
  • 河北省建设工程综合信息网/优化设计七年级下册数学答案
  • 中铁四局建筑公司网站/网站营销与推广
  • 福州网站制作有限公司/360优化大师旧版本
  • 湛江北京网站建设/北京seo课程
  • 企业网站欣赏/上海网络优化服务
  • wordpress网站数据库备份/百度首页快速排名系统