【离线】牛客小白月赛39 G

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

题意

思路

考虑离线Bit做法

这种离线Bit,一般都是去考虑二维数点就能写清楚了

确定好两维:x 轴是1 ~ n, y 轴是 k 的大小

然后去遍历值域,如果值域很大的话需要排序+离散化,但是这里不需要

这里有个容易想错的点,对于 Bit 维护的 y 轴,query(x)维护的是 y 轴上 <= x 的值,也就是说,query是个 y 轴上的前缀和

query(x)是个前缀和,它不是 y轴 上某个数的值

这样就直接写就好了,注意询问需要用 vector 存,否则会出错

#include <bits/stdc++.h>#define int long long
#define lowbit(x) (x & (-x))constexpr int N = 3e6 + 10;
constexpr int M = 1e4 + 10;
constexpr int mod = 998244353;
constexpr int Inf = 0x3f3f3f3f;std::vector<std::pair<int, int> > V[N];int len = 0;
int prime[N], vis[N], minp[N];
int n[N], k[N];
int id[N];
int ans[N];
int tr[N];void P_init(int n) {for (int i = 2; i <= n; i ++) {if (!vis[i]) {minp[i] = i;prime[++len] = i;}for (int j = 1; i <= n / prime[j]; j ++) {vis[i * prime[j]] = 1;minp[i * prime[j]] = prime[j];if (i % prime[j] == 0) {break;}}}
}
void add(int x, int k) {for (int i = x; i <= 3e6; i += lowbit(i)) {tr[i] += k;}
}
int query(int x) {int res = 0;for (int i = x; i; i -= lowbit(i)) {res += tr[i];}return res;
}
void solve() {int q;std::cin >> q;for (int i = 1; i <= q; i ++) {int n, k;std::cin >> n >> k;V[n].push_back({k, i});}for (int i = 1; i <= 3e6; i ++) {if (i != 1) add(minp[i], 1);for (auto [k, id] : V[i]) {ans[id] = query(3e6) - query(k - 1);}}for (int i = 1; i <= q; i ++) {std::cout << ans[i] << "\n";}
}
signed main(){std::ios::sync_with_stdio(false);std::cin.tie(nullptr);int t = 1;P_init(3e6);while(t --) {solve();}return 0;
}

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

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

相关文章

RT-DETR 图片目标计数 | 特定目标进行计数

全类别计数特定类别计数如何使用 RT-DETR 进行对象计数 有很多同学留言说想学 RT-DETR 目标计数。那么今天这篇博客,我将教大家如何使用 RT-DETR 进行对象计数。RT-DETR 是一种非常强大的对象检测模型,它可以识别图像中的各种对象。我们将学习如何利用这个模型对特定对象进行…

如何拍摄超级大像素图片,超级大像素有哪些应用

引言&#xff1a; 在数字摄影领域&#xff0c;超级大像素照片是指通过高像素的相机或拼接多张照片合成的照片。这样的照片具有更高的分辨率&#xff0c;细节更加清晰&#xff0c;绘画质感更强。那么如何拍摄超级大像素照片&#xff0c;超级大像素可以用在哪些领域呢。 一&…

希尔伯特黄变换(hht)

提示&#xff1a;主要对希尔伯特黄变换进行简略的介绍 一、希尔伯特黄变换是什么&#xff1f; 1.1 定义 为了纪念故事中两位老先生&#xff08;Hilbert和Huang&#xff09;的突出贡献&#xff0c;人们决定把“经过EMD分解出的IMF分量再经过Hilbert变换&#xff0c;最终得到信…

扫地机器人测试点

简介&#xff1a;在科技发展的浪潮下&#xff0c;扫地机器人已经成为越来越多家庭的“贴心管家”&#xff0c;助力我们迎战尘埃和杂物。但是&#xff0c;面对市面上五花八门的扫地机器人&#xff0c;以下为一般情况下扫地机器人的功能测试要点。 历史攻略&#xff1a; AI语音…

Vue3-19-组件-定义和基本使用

组件的定义 个人理解 &#xff1a;1、组件&#xff0c;就是我们把某个功能模块进行封装&#xff0c;在使用时直接引入进行使用&#xff0c;极大的提高了代码的可复用性。2、在vue 中&#xff0c;一个 [.vue] 文件&#xff0c;就是一个组件。3、组件之间存在【引入】 与 【被引…

Golang在 Docker 中交叉编译 Windows

前言&#xff1a; 前端时间把本地的 Golang 开发环境卸载了&#xff0c;如果编写代码的话就是启动一个 Golang 的 Docker 容器。这样做对于服务端开发本来也是没有问题的&#xff0c;但是有时候想要把程序放到 Windows 上面来执行&#xff0c;那就遇到麻烦了。因为 Docker 容器…

MSP430x44x Terminal Functions使用说明

DVcc1 1 I/O ADC中参考电压正极端子的输出 P6.3/A3 2 I/O 通用数字I/O/模拟输入a3--12位ADC P6.4/A4 3 I/O 通用数字I/O/模拟输入a4--12位ADC P6.5/A5 4 I/O 通用数字I/O/模拟输入a5--12位ADC P6.6/A6 5 I/O 通用数字I/O/模拟输入a6--12位ADC P6.7/A7/SVSI…

文件上传自动化测试方案(超详细)

一、概述 【测试地址】&#xff1a;https://pan.baidu.com 【测试工具】&#xff1a;selenium、requests 【脚本语言】&#xff1a;Python 【运行环境】&#xff1a;Windows 百度网盘作为文件存储及分享的平台&#xff0c;核心功能大部分是对文件的操作&#xff0c;如果要…

小红书可观测 Metrics 架构演进,如何实现数十倍性能提升?

在当前云原生时代&#xff0c;随着微服务架构的广泛应用&#xff0c;云原生可观测性概念被广泛讨论。可观测技术建设&#xff0c;将有助于跟踪、了解和诊断生产环境问题&#xff0c;辅助开发和运维人员快速发现、定位和解决问题&#xff0c;支撑风险追溯、经验沉淀、故障预警&a…

广西开放大学形成性考核 平时作业 统一资料 参考

试卷代号&#xff1a;1293 心理学 参考试题 一、选择题&#xff08;每个3分&#xff0c;共30分&#xff0c;含单选和多选&#xff0c;请将正确答案的字母序号填入括号中&#xff09; 1.人们通常把下列图形知觉为一个连续、完整的形状&#xff0c;说明图形知觉遵循( )。…

如何发布自定义 npm 组件包

准备工作 1. 注册 npm 账号 还没有 npm 账号&#xff1f;去官网注册&#xff1a; https://www.npmjs.com 需要记住用户名、密码、邮箱&#xff0c;后面需要用到。 2. 查看本地 npm 镜像&#xff0c;如果不是默认的&#xff0c;需要改回来 npm config get registry重置镜像路…

统一观测丨使用 Prometheus 监控 Memcached 最佳实践

作者&#xff1a;啃唯 Memcached 简介 Memcached 是什么&#xff1f; Memcached 是一个免费开源、高性能、分布式内存对象缓存系统&#xff0c;支持将任意数据类型的 chunk 数据以键值对的方式存储。本质上 Memcached 是通用于所有的应用的&#xff0c;但最初用于存储被经常…