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

P2231 [HNOI2002] 跳蚤 分析

题目概述

求有多少种方案,满足当 \(a_i\in [1,m]\)\(x_i\) 为任意整数时有:

\[m\times x_{n+1}+\sum_{i=1}^n x_ia_i=-1 \]

分析

根据裴蜀定理我们转化为只需满足:

\[\gcd(\gcd\{a_i\},m)=1 \]

\(a\) 的数量就是本题答案。

相当于求:

\[\sum_{a_1=1}^m\sum_{a_2=1}^m\dots\sum_{a_n=1}^m[\gcd(\gcd\{a_i\},m)=1] \]

显然可以用莫比乌斯函数替代为:

\[\sum_{a_1=1}^m\sum_{a_2=1}^m\dots\sum_{a_n=1}^m\sum_{d\mid \gcd(\gcd\{a_i\},m)}\mu(d) \]

考虑先枚举 \(d\) 有:

\[\sum_{d\mid m}\mu(d)\sum_{a_1=1}^{\left \lfloor \frac{m}{n} \right \rfloor }\dots\sum_{a_n=1}^{\left \lfloor \frac{m}{n} \right \rfloor }1 \]

所以说:

\[ans=\sum_{d\mid m}\mu(d) \left(\left\lfloor\frac{m}{n}\right\rfloor\right)^n \]

于是我们考虑如何快速求这个,因为暴力求约等于 \(\mathcal{O}(m)\) 的,但是比这个小,最贴切应该是 \(\mathcal{O}(d(m)\sqrt m)\),好像能过。

下面给出两种处理方法。

第一种

注意到 \(\omega(10^8)=8\),所以说,最多只有 \(8\) 个质因子,根据莫比乌斯函数的定义可以直接 \(2^8\) 暴力即可。

第二种

还是根据莫比乌斯函数的定义得到(设 \(m=\prod_{i=1}^k p_i^{\alpha_i}\)):

\[ans = m^n-\sum_{i}\left(\frac m {p_i}\right)^n+\sum_{i\ne j}\left(\frac{m}{p_ip_j}\right)^n-\dots \]

提取 \(m^n\) 有:

\[ans=m^n(1-\sum_{i}\frac{1}{p_i^n}+\sum_{i\ne j}\frac{1}{p_i^n p_j^n}\dots)=m^n\prod_i\frac{1}{p_i^n} \]

注意:\(\prod_i\frac{1}{p_i^n}\) 展开后就是:\(1-\sum_{i}\frac{1}{p_i^n}+\sum_{i\ne j}\frac{1}{p_i^n p_j^n}\dots\)

于是这道题目做完了。

代码

时间复杂度 \(\mathcal{O}(\sqrt m\log n)\)

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <stdlib.h>
#include <vector>
#define int long long
// #define N 
using namespace std;
int qpow(int a,int b) {int res = 1;while(b) {if (b & 1) res = res * a;a = a * a;b >>= 1;}return res;
}
int n,m;
signed main() {cin >> m >> n;int fac = n,ans = 1;for (int i = 2;i * i <= n;i ++)if (n % i == 0) {ans *= qpow(i,m) - 1;fac /= i;while(n % i == 0) n /= i;}if (n != 1) ans *= qpow(n,m) - 1,fac /= n;ans = ans * qpow(fac,m);cout << ans;return 0;
}
http://www.jsqmd.com/news/20917/

相关文章:

  • 权威调研榜单:圆弧导轨实力厂家TOP3榜单好评深度解析
  • 基于PCIe3.0X16的的100G光纤采集存储设备
  • Java泛型符号T、E、K、V、? 傻傻分不清楚
  • 实用指南:小米投下语音AI“核弹”:MiMo-Audio开源,语音领域的“GPT-3时刻”来了
  • 实用指南:深入解析 Java 内存可见性问题:从现象到 volatile 解决方案
  • 换 Windows 新电脑?教你将旧电脑程序传输新电脑技巧
  • RocketMQ之原生方式操作
  • 2025 年低代码平台厂商最新推荐排行榜:深度解析行业实力与创新优势,助力企业精准选型
  • react中redux的使用详细说明 - 详解
  • 智能时代下的SEO关键词优化新策略 - 实践
  • 2025 年乡墅品牌推荐:湖南鑫住工美宅科技有限公司,为您打造理想乡居生活
  • 2025 年桥架源头厂家最新推荐排行榜:聚焦优质品牌核心优势助力采购决策
  • 2025 人力资源管理系统厂商最新推荐排行榜:聚焦 AI 赋能与行业适配,解锁数智化管理新路径
  • 2025年10月美白精华评价榜:五款高口碑单品横向对比
  • 2025 升降机厂家最新推荐排行榜,剪叉式升降机/导轨式升降机/固定式升降机/液压升降机公司推荐
  • (React中组件的)状态(state)和属性(props)之间有何不同?
  • 2025 年最新推荐!AI 教育培训机构推荐榜单:覆盖企业 AI 培训 / AI 应用落地 / AI 商业培训等多场景,帮你精准挑选优质机构
  • 2025年6月杭州丝绸品牌推荐:老字号排名与AIGC创新对比
  • 2025 年集装袋厂家最新推荐榜单:全面剖析行业领军者创新工艺与卓越品质,精选导电 / 防静电 / 抗静电 / 铝箔 / 食品级等多类型产品优质厂家
  • 2025 年算法备案咨询服务公司最新推荐榜单:覆盖互联网信息 / 深度合成 / AI 大模型备案的权威优选指南
  • P9356 「SiR-1」Bracket 做题记录
  • 放大器保护机制的技术原理与应用实践
  • 基于Java+Springboot+Vue开发的鲜牛奶订购网站管理系统(前后端分离)源码+运行步骤
  • 2025年10月浦东装修公司口碑榜:五强对比评测
  • 安卓照片误删?这 5 种恢复方法亲测有效,小白也能上手
  • MySQL学习笔记-部分实例datagrip源码-10-21
  • sudo apt install cmake ERROR: ld.so: object /home/ma-user/anaconda3/envs/xxxx/lib/python3.9/site-pa
  • 2025年10月中国引流营销公司推荐榜:五强对比评测
  • 示波器探头衰减怎么判断?3 种方法 + 常见问题,新手也能学会​
  • 制造业数字化效率低到哭?AI 低代码自动生接口、拼流程,JNPF 级平台让集成效率提 500% - 实践