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

题解:AT_abc206_e [ABC206E] Divide Both

思路

感觉是一道很有意思的容斥加一些其他东西的题。

考虑转换问题,通过还原把原本的问题变为:

在满足 a,b∈[ld,rd]a,b \in [\frac{l}{d}, \frac{r}{d}]a,b[dl,dr] 的前提下,有多少个 (a,b)(a,b)(a,b) 满足 gcd⁡(a,b)=1\gcd(a,b)=1gcd(a,b)=1,且 a,b≠1a,b \ne 1a,b=1

接下来我们考虑计算区间内最大公约数为 ddd 的对数。可以考虑统计所有区间内是 ddd 的倍数的数的个数,也就是 (cntd)2(cnt_d)^2(cntd)2,这里 cntcntcnt 表示一个数,显然会多算 2×d,3×d,4×d…2 \times d,3\times d,4 \times d \dots2×d,3×d,4×d,那我们考虑直接用容斥原理减掉,最后就得到了要求的对数,注意这里 ddd 要反着枚举。

容易发现我们会算重,所以我们要减去 x=dx=dx=dy=dy=dy=d 的情况,因为这种情况被算了两次。

代码

#include <bits/stdc++.h>
using namespace std;
const long long N = 1000010;
long long cnt[N], ccf[N];
int main()
{long long l, r;cin >> l >> r;for (long long d = 1; d <= r; d++){for (long long i = ((l + d - 1) / d) * d; i <= r; i += d){cnt[d]++;}}for (long long d = r; d >= 2; d--){ccf[d] = cnt[d] * cnt[d];for (long long i = 2; i <= r / d; i++){ccf[d] -= ccf[i * d];}}long long res = 0;for (long long d = 2; d <= r; d++){if (d < l){res += ccf[d];continue;}ccf[d] -= (cnt[d] - 1) * 2 + 1;res += ccf[d];}cout << res;return 0;
}
http://www.dtcms.com/a/398797.html

相关文章:

  • 链改2.0总架构师何超秘书长重构“可信资产lPO与数链金融RWA”
  • 网站开发技术包括网站建设专业培训
  • 无人机航拍WiFi图传模块,16公里实时高清图传性能和技术参数
  • 视频元素在富文本编辑器中的光标问题
  • 企业网站内容如何搭建推荐做木工的视频网站
  • grounding dino 源码部署 cuda12.4 开放词汇目标检测(Open-Vocabulary Object Detection, OVOD)模型
  • 一个虚拟主机可以做几个网站吗毕设做网站心得体验
  • Spring使用SseEmitter实现后端流式传输和前端Vue数据接收
  • 湖南省新闻最新消息十条深圳seo网站推广方案
  • 语音交互接待服务机器人深度推荐
  • 创建学校网站吗网站搭建工具的种类
  • Linux-ARM-裸机开发-开发环境搭建
  • 2025年校园招聘平台怎么选?
  • 如何把视频放到自己的网站ftp怎么重新上传网站
  • minio文件迁移
  • 网站反链接是什么意思wordpress 侧边收起
  • docker-desktop 分发版不支持用户数据挂载
  • 部署LVS NAT集群
  • 使用 feature_engine库 提升你的机器学习特征工程效率
  • 做网站网络公司无收入域名管理系统
  • 2,GUI Guider的安装与导入STM32裸机工程
  • 上门代管宠物系统的设计与实现
  • 鸿蒙Next应用开发:ArkTS语言下的IPC与RPC通信指南
  • CTFSHOW 中期测评(二)web502 - web516
  • JVM-执行引擎
  • 企业手机网站源码网站建设相关资质
  • python项目: Thinkphp框架漏洞扫描器集成
  • 车载通信架构 ---新一代车载通信框架
  • 建设银行网站怎么注销网银网站建设网页制作
  • 【25软考网工】第五章(10) Internet应用