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

【Luogu】P2398 GCD SUM (容斥原理求gcd为k的数对个数)

P2398 GCD SUM - 洛谷

题目:

思路:

gcd容斥

令 f[i] 代表以 i 为最大公因数的数对,g[k] 为满足 k | gcd(x,y) 的对数

显然 g[i] = f[i] + f[2*i] + f[3*i] + ... + f[m*i]

不难看出 g[i] = cnt²,其中 cnt 代表 i 的倍数,其值为 n / i

故得 f[i] = cnt² - f[2*i] - f[3*i] - ... - f[m*i]

模拟即可,复杂度约为 O(N·ln(n))

代码:

#include <bits/stdc++.h>
using namespace std;
#define int long long
#define yes cout << "YES\n"
#define no cout << "NO\n"
mt19937 rnd(chrono::steady_clock::now().time_since_epoch().count());int n;
int f[100005];
void solve()
{cin >> n;int ans = 0;for (int i = n; i; i--){int cnt = n / i;for (int j = i; j <= n; j+=i){f[i] -= f[j];}f[i] += cnt * cnt;ans += f[i]*i;}cout << ans << endl;
}signed main()
{ios::sync_with_stdio(false);cin.tie(nullptr);int t = 1;while (t--){solve();}return 0;
}

http://www.dtcms.com/a/365788.html

相关文章:

  • 鸿蒙NEXT开发实战:图片显示、几何图形与自定义绘制详解
  • GPT4o 提示词 结合 NanoBanbana 会摩擦出什么火花呢?
  • FPGA笔试面试常考问题及答案汇总
  • 入行FPGA选择国企、私企还是外企?
  • 案例演示 切片器悬浮永驻 Power BI VS QuickBI ,不得不说,两个极端了
  • 华勤内推码
  • 智慧交通管理信号灯通信4G工业路由器应用
  • 【机器学习深度学习】LLM:在检索与重排序中的适用场景
  • PS更改图像尺寸
  • 心路历程-初识Linux用户
  • 于海斌、王耀南、张钹三位院士解读具身智能
  • 数据结构与算法-线性表
  • C++零基础第一天:从Hello World到变量常量
  • 【JAVA】windows本地跑zookeeper,然后使用代码连接服务获取znode数据
  • 什么是STDIO 模式,fastmcp 采用 STDIO
  • 基于Java的瑜伽馆管理系统的设计与实现(代码+数据库+LW)
  • 学生党/租房党必看!哈趣三款百元投影仪哪款最香?
  • 在word中使用lateX公式的方法
  • FPGA学习笔记——SDR SDRAM简介
  • Docker 学习笔记
  • PyTorch 中训练语言模型过程
  • 视频判重需求:别为同一内容花两次钱!
  • 0 1背包的解释 这个代码解释风格好
  • 新闻发稿平台哪家好?新闻源发表新闻媒体收录平台测评
  • Redis基础篇
  • 模仿学习模型diffusion_policy部署
  • 宋红康 JVM 笔记 Day12|执行引擎
  • MySQL索引分类
  • 网络通信与协议栈 -- OSI,TCP/IP模型,协议族,UDP编程
  • GitLab Boards 深度解析:选型、竞品、成本与资源消耗