题目大意

求 \(b\) (正整数集合)使得 \(\sum_{i=1}^{n+1} a_i \times b_i = 1\)

其中给定 \(b_{n+1}=m\) 且为 \(b\) 中最大值

\(1 \leq n,m \leq 10^{15}\)

解法

其实很简单

很容易想到 \(\gcd(b_1,b_2,...,b_{n+1}) = 1\)

而 \(b_{n+1}=m\) 为最大值

那么我们就可以构造满足 \(\gcd\) 两两互质的数列,则必满足题目要求(裴蜀定理)

于是我们要怎么算?

正难则反

我们算不满足的数列的个数

只要这些数的最大公约数大于 \(1\) 则可

我们把 \(m\) 分解质因数

每个质因子 \(\alpha\),\(m\) 内就有 \(m / \alpha\) 个数是其倍数

全这些数来构造数列,必然不合法,有 \((m / \alpha) ^ n\) 个

但我们会算重,容斥即可

总的方案有 \(m^n\) 个,减去这些不合法的即可

\(Code\)

#include<cstdio>
#include<cmath>
using namespace std;
typedef long long LL; const LL P = 1e9 + 7;
int cnt , ct;
LL n , m , num[30] , tmp[30] , c[30] , ans; void dfs(int x , LL s , int b)
{
if (x > cnt)
{
tmp[++ct] = s , c[ct] = (b & 1 ? -1 : 1);
return;
}
dfs(x + 1 , s * num[x] , b + 1);
dfs(x + 1 , s , b);
} LL fpow(LL x , LL y)
{
LL res = 1;
x %= P;
while (y)
{
if (y & 1) res = res * x % P;
y >>= 1 , x = x * x % P;
}
return res;
} int main()
{
freopen("heal.in" , "r" , stdin);
freopen("heal.out" , "w" , stdout);
scanf("%lld%lld" , &n , &m);
LL o = m;
for(register int i = 2; (LL)i * i <= o; i++)
if (o % i == 0)
{
num[++cnt] = i;
while (o % i == 0) o /= i;
}
if (o > 1) num[++cnt] = o;
dfs(1 , 1 , 0);
for(register int i = 1; i <= ct; i++)
{
o = fpow(m / tmp[i] , n);
ans = ((ans + o * c[i]) % P + P) % P;
}
printf("%lld" , ans);
}

JZOJ 5348. 【NOIP2017提高A组模拟9.5】心灵治愈的更多相关文章

  1. JZOJ 【NOIP2017提高A组模拟9.14】捕老鼠

    JZOJ [NOIP2017提高A组模拟9.14]捕老鼠 题目 Description 为了加快社会主义现代化,建设新农村,农夫约(Farmer Jo)决定给农庄里的仓库灭灭鼠.于是,猫被农夫约派去捕 ...

  2. [JZOJ 100026] [NOIP2017提高A组模拟7.7] 图 解题报告 (倍增)

    题目链接: http://172.16.0.132/senior/#main/show/100026 题目: 有一个$n$个点$n$条边的有向图,每条边为$<i,f(i),w(i)>$,意 ...

  3. 【NOIP2017提高A组模拟9.7】JZOJ 计数题

    [NOIP2017提高A组模拟9.7]JZOJ 计数题 题目 Description Input Output Sample Input 5 2 2 3 4 5 Sample Output 8 6 D ...

  4. JZOJ 100029. 【NOIP2017提高A组模拟7.8】陪审团

    100029. [NOIP2017提高A组模拟7.8]陪审团 Time Limits: 1000 ms  Memory Limits: 131072 KB  Detailed Limits   Got ...

  5. JZOJ 5328. 【NOIP2017提高A组模拟8.22】世界线

    5328. [NOIP2017提高A组模拟8.22]世界线 (File IO): input:worldline.in output:worldline.out Time Limits: 1500 m ...

  6. JZOJ 5329. 【NOIP2017提高A组模拟8.22】时间机器

    5329. [NOIP2017提高A组模拟8.22]时间机器 (File IO): input:machine.in output:machine.out Time Limits: 2000 ms M ...

  7. JZOJ 5307. 【NOIP2017提高A组模拟8.18】偷窃 (Standard IO)

    5307. [NOIP2017提高A组模拟8.18]偷窃 (Standard IO) Time Limits: 1000 ms Memory Limits: 262144 KB Description ...

  8. JZOJ 5286. 【NOIP2017提高A组模拟8.16】花花的森林 (Standard IO)

    5286. [NOIP2017提高A组模拟8.16]花花的森林 (Standard IO) Time Limits: 1000 ms Memory Limits: 131072 KB Descript ...

  9. JZOJ 5305. 【NOIP2017提高A组模拟8.18】C (Standard IO)

    5305. [NOIP2017提高A组模拟8.18]C (Standard IO) Time Limits: 1000 ms Memory Limits: 131072 KB Description ...

  10. 【NOIP2017提高A组模拟9.17】信仰是为了虚无之人

    [NOIP2017提高A组模拟9.17]信仰是为了虚无之人 Description Input Output Sample Input 3 3 0 1 1 7 1 1 6 1 3 2 Sample O ...

随机推荐

  1. BUU_RE学习记录

    一.easyre 1.010打开,直接搜flag,得到flag 二.reverse1 1.先查壳,得知是64位无壳,直接用IDA打开 2.shiftF12查找字符串,发现关键语句 3.查看相应代码,F ...

  2. AIR32F103(七) AIR32F103CBT6/CCT6启用96K内存

    目录 AIR32F103(一) 合宙AIR32F103CBT6开发板上手报告 AIR32F103(二) Linux环境和LibOpenCM3项目模板 AIR32F103(三) Linux环境基于标准外 ...

  3. Elasticsearch查询及聚合类DSL语句宝典

    作者:京东科技 纪海雨 前言 随着使用es场景的增多,工作当中避免不了去使用es进行数据的存储,在数据存储到es当中以后就需要使用DSL语句进行数据的查询.聚合等操作,DSL对SE的意义就像SQL对M ...

  4. Django(2) - Django模板

    1.Django模板介绍 基础概念 模板是具有一定的格式或骨架,可以动态的生成HTML 模板引擎决定以何种方式组织代码 一个项目可以有一个或者是多个模板引擎,Django里面主要两个模板引擎:DTL. ...

  5. ESXI 7.0封装网卡驱动

    前段时间配置的All In One 主机,由于华擎H410M-ITX/AC主板的板载网卡为intel I219-V,在安装ESXI后网卡无法驱动.查询之后发现原来ESXI7.0.2的版本不含该网卡驱动 ...

  6. java基础篇——异常

    异常的三种类型 1.检查型异常:通常是由用户错误或者问题引起,是程序员无法预见的,例如用户要打开一个不存在的文件... 2.运行时异常:最有可能被程序员忽略的异常,可以在编译时被忽略,例如无限递归调用 ...

  7. LVGL 中图片使用问题

    此笔记主要是记录在 LVGL 中使用图片的几种方式,以及使用过程中遇到的问题.最近在 ARM linux 中使用 LVGL 时,发现加载图片变得很卡,一开始还好,当连续加载的图片变多后,特别是动画的过 ...

  8. [Unity]限制一个值的大小(Clamp以及Mathf)

    如何限制一个物体的运动范围? 代码实例 public float xMin, xMax, zMin, zMax; rigidbody.position = new Vector3( Mathf.Cla ...

  9. LibreOJ 144. DFS 序 1

    题面 给一棵有根树,这棵树由编号为 \(1\dots N\) 的 \(N\) 个结点组成.根结点的编号为 \(R\).每个结点都有一个权值,结点 \(i\) 的权值为 \(v_i\). 接下来有 \( ...

  10. (16)go-micro微服务jaeger链路追踪

    目录 一 jaeger链路追踪介绍 什么是链路追踪: 链路追踪主要功能: 二 jaeger链路追踪作用 三 jaeger链路追踪主要特性 四 jaeger链路追踪原理图 1.链路调用原理 2. 一次调 ...