Description


N,M<=10^15

Solution


首先需要知道一个结论,若n%k+m%k≥kn%k+m%k≥kn \% k+m \% k\geq k ,则⌊n+mk⌋−⌊nk⌋−⌊mk⌋=1⌊n+mk⌋−⌊nk⌋−⌊mk⌋=1\lfloor\frac{n+m}{k}\rfloor-\lfloor\frac{n}{k}\rfloor-\lfloor\frac{m}{k}\rfloor=1
证明如下:
显然可以设n=a1k+r1n=a1k+r1n=a_1k+r_1,m=a2k+r2m=a2k+r2m=a_2k+r_2,那么⌊n+mk⌋=a1+a2+1⌊n+mk⌋=a1+a2+1\lfloor\frac{n+m}{k}\rfloor=a_1+a_2+1,⌊nk⌋=a1⌊nk⌋=a1\lfloor\frac{n}{k}\rfloor=a_1,⌊mk⌋=a2⌊mk⌋=a2\lfloor\frac{m}{k}\rfloor=a_2
因为r1+r2≥kr1+r2≥kr_1+r_2\geq k因此⌊r1+r2k⌋=1⌊r1+r2k⌋=1\lfloor\frac{r_1+r_2}{k}\rfloor=1

现在令t=∑n%k+m%k≥kφ(k)t=∑n%k+m%k≥kφ(k)t=\sum_{n\%k+m\%k\geq k}\varphi(k),显然答案就是φ(n)∗φ(m)∗tφ(n)∗φ(m)∗t\varphi(n)*\varphi(m)*t
那么有t=∑n%k+m%k≥kφ(k)=∑n+mk=1φ(k)[⌊n+mk⌋−⌊nk⌋−⌊mk⌋=1]t=∑n%k+m%k≥kφ(k)=∑k=1n+mφ(k)[⌊n+mk⌋−⌊nk⌋−⌊mk⌋=1]t=\sum_{n\%k+m\%k\geq k}\varphi(k)=\sum_{k=1}^{n+m}\varphi(k)[\lfloor\frac{n+m}{k}\rfloor-\lfloor\frac{n}{k}\rfloor-\lfloor\frac{m}{k}\rfloor=1]
我们发现后面那一坨布尔表达式不为0就为1,那么有t=∑n+mk=1φ(k)(⌊n+mk⌋−⌊nk⌋−⌊mk⌋)t=∑k=1n+mφ(k)(⌊n+mk⌋−⌊nk⌋−⌊mk⌋)t=\sum_{k=1}^{n+m}\varphi(k)(\lfloor\frac{n+m}{k}\rfloor-\lfloor\frac{n}{k}\rfloor-\lfloor\frac{m}{k}\rfloor),可以感受一下区别
那么拆一下就成了t=∑n+mk=1φ(k)⌊n+mk⌋−∑nk=1φ(k)⌊nk⌋−∑mk=1φ(k)⌊mk⌋t=∑k=1n+mφ(k)⌊n+mk⌋−∑k=1nφ(k)⌊nk⌋−∑k=1mφ(k)⌊mk⌋t=\sum_{k=1}^{n+m}\varphi(k)\lfloor\frac{n+m}{k}\rfloor-\sum_{k=1}^{n}\varphi(k)\lfloor\frac{n}{k}\rfloor-\sum_{k=1}^{m}\varphi(k)\lfloor\frac{m}{k}\rfloor

考虑一下∑nk=1φ(k)⌊nk⌋∑k=1nφ(k)⌊nk⌋\sum_{k=1}^{n}\varphi(k)\lfloor\frac{n}{k}\rfloor的意义,有∑nk=1φ(k)⌊nk⌋=∑nk=1∑⌊nk⌋i=1φ(k)=∑ni=1∑k|iφ(k)=∑ni=1i∑k=1nφ(k)⌊nk⌋=∑k=1n∑i=1⌊nk⌋φ(k)=∑i=1n∑k|iφ(k)=∑i=1ni\sum_{k=1}^{n}\varphi(k)\lfloor\frac{n}{k}\rfloor=\sum_{k=1}^{n}\sum_{i=1}^{\lfloor\frac{n}{k}\rfloor}\varphi(k)=\sum_{i=1}^{n}\sum_{k|i}\varphi(k)=\sum_{i=1}^{n}i
辣莫t=12[(n+m)(n+m+1)−n(n+1)−m(m+1)]=nmt=12[(n+m)(n+m+1)−n(n+1)−m(m+1)]=nmt=\frac{1}{2}[(n+m)(n+m+1)-n(n+1)-m(m+1)]=nm
即ans=φ(n)∗φ(m)∗nmans=φ(n)∗φ(m)∗nmans=\varphi(n)*\varphi(m)*nm
惊喜不惊喜,意外不意外

Code


#include <stdio.h>
#include <string.h>
#define rep(i,st,ed) for (int i=st;i<=ed;++i)typedef long long LL;
const int MOD=998244353;void cal(LL &ret,LL x) {ret=ret/x;ret=ret*(x-1);
}LL get_phi(LL n) {LL ret=n;for (LL i=2;i*i<=n;i++) {if (n%i) continue;cal(ret,i);while (n%i==0) n/=i;}if (n!=1) ret=(ret/n)*(n-1);return ret;
}int main(void) {LL n,m; scanf("%lld%lld",&n,&m);printf("%lld\n",n%MOD*m%MOD*(get_phi(m)%MOD)%MOD*(get_phi(n)%MOD)%MOD);return 0;
}

bzoj4173 数学相关推荐

  1. 群论中的拉格朗日定理(子群的阶必然能整除群阶---数学

    前言:仅个人小记.本文记录的证明逻辑上不具有流畅性,主要是在一开始不流畅,拉格朗日神乎其技地引入了一个等价关系,进而实现了整个定理的证明,目前我没能给出拉格朗日是如何想到引入该等价关系. 最后给出推论 ...

  2. 通俗理解条件熵-数学

    就是决策树里面选划分属性用到的计算 条件熵越小表示划分之后各个集合越纯净 前面我们总结了信息熵的概念通俗理解信息熵 - 知乎专栏,这次我们来理解一下条件熵. 我们首先知道信息熵是考虑该随机变量的所有可 ...

  3. 内积和外积的物理意义-数学

    内积和外积的物理意义 Persistently关注 2018.07.31 14:28:46字数 277阅读 6,276 向量的内积 ab=ab cos(θ) 向量a和b的长度之积再乘以它们之间的夹角的 ...

  4. Ramsey定理数学

    https://blog.csdn.net/qq_41551359/article/details/84036876 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上 ...

  5. 数学上各种空间概念的关系图

    https://blog.csdn.net/cc1949/article/details/79744519 数学上有各种空间,概念容易混淆,为了记忆,整理出一张关系图. 目前不清楚无限维的内积空间是什 ...

  6. 2021年大数据Hive(五):Hive的内置函数(数学、字符串、日期、条件、转换、行转列)

    全网最详细的Hive文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 系列历史文章 前言 Hive的内置函数 一.数学函数 1. 取整函数: round ...

  7. js函数语法:ASCII 码的相互转换,字符串操作,数学计算

    ASCII 码的相互转换 for (let i = 'a'.charCodeAt(); i <= 'z'.charCodeAt(); i++) {a.push(String.fromCharCo ...

  8. 机器学习数学 — 初等函数求导

    本文摘自 GitChat 李烨老师 [机器学习极简入门课]课程 1. 数学知识速查手册 机器学习常用微积分知识速查手册 机器学习常用线性代数知识速查手册 2. 初等函数求导公式

  9. Python学习笔记17:标准库之数学相关(math包,random包)

    前面几节看得真心累.如今先来点简单easy理解的内容. 一 math包 math包主要处理数学相关的运算. 常数 math.e   # 自然常数e math.pi  # 圆周率pi 运算函数 math ...

  10. RanceQuest2_从委托到Lambda_会用(递归数学函数)

    二连发 使用Lambda表达式编写递归函数 --摘自老赵点滴 - 追求编程之美. todo用手敲30遍,搞定--泛型委托,Lambda表达式,简单的数学递归. 遗憾的是,原本希望更进一步做出一个通用的 ...

最新文章

  1. 如何在linux下解压缩rar格式的文件压缩包
  2. Saiku的下载与安装(一)
  3. python3练习-装饰器
  4. 光纤中继器的安装调试
  5. 飞腾 linux 内核,FT2004-Xenomai
  6. [置顶] C语言中各种数据类型的长度 sizeof char, short, int, long, long long
  7. NOIP 2010 引水入城
  8. matlab没有pso工具箱,MATLAB-PSO工具箱
  9. Day2:360培训学习重点笔记(7.14)
  10. 编写一个函数itob(),将整数n转换为以b进制的数,保存到s中
  11. 解决办法:nvidia-docker2 : 依赖: docker-ce (= 5:18.09.0~3-0~ubuntu-xenial)
  12. python比对excel表数据_【转】用python比对数据库表数据的脚本
  13. TOOLFK工具-在线二维码解码工具
  14. 【Android实战】json解析+GridView自适应布局+图片加载
  15. 计算机的键盘应用,电脑键盘应用小知识
  16. 什么是等保(信息安全等级保护)?
  17. 使用 FireDAC的 TFDConnection, TFDQuery 最初只能显示50条记录,TDateSet.RecordCount总是获得50的解决方法。
  18. vue项目总使用高德API的轨迹展示巡航
  19. User-Agent(浏览器标识)应用详解
  20. 2019年中国研究生数学建模竞赛D题 汽车行驶工况构建

热门文章

  1. assimp android build,Windows环境下编译Assimp库生成Android可用的.so文件
  2. 儿童编程软件python-一款儿童编程入门的理想工具——PythonTurtle
  3. Raucous Rockers_usaco3.4.4
  4. 从图形和算法层面来看LIO-SAM残差问题
  5. 电压源和电流的关联参考方向_什么是电流,电压的关联参考方向?
  6. vue框架对接手机app
  7. Python修改图片格式
  8. 看似落魄的灵魂登场却如此隆重,风 吹散了平庸 爱漫延没有尽头
  9. 山海经2服务器维护时间,山海经异兽录多久出一次新服 | 手游网游页游攻略大全...
  10. ORA-00257错误解决方法