LibreOJ #528. 「LibreOJ β Round #4」求和
二次联通门 : LibreOJ #528. 「LibreOJ β Round #4」求和
/*
LibreOJ #528. 「LibreOJ β Round #4」求和 题目要求的是有多少对数满足他们的最大公约数的质因子不超过一个
f (x) 表示有多少对数满足最大公约数中含有x^2这个因子
那么f (x) = N / x ^ 2 * M * (x ^ 2)
答案即为所有数字减去不符合要求的数字个数 但是我们发现,可能某对数字的最大公约数含有多个质数平方因子
那么在处理的时候就会重复筛去 这时我们可以用容斥原理,用μ来作为容斥系数
枚举x即可
*/
#include <cstdio>
#include <iostream>
#include <cmath> #define Max 3231231
inline long long min (long long a, long long b) { return a < b ? a : b; }
int mu[Max | ], is[Max | ], p[Max | ];
#define Mod 998244353 int Main ()
{
long long N, M; scanf ("%lld%lld", &N, &M); register int i, j;
int Answer = ; int C = ;
int Limit = min (sqrt (N), sqrt (M));
for (i = , is[] = true, mu[] = ; i <= Max; ++ i)
{
if (!is[i]) p[++ C] = i, mu[i] = -;
for (j = ; j <= C && i * p[j] <= Max; ++ j)
{
is[i * p[j]] = true; if (i % p[j] == ) break;
mu[i * p[j]] = -mu[i];
}
}
for (i = ; i <= Limit; ++ i)
Answer = (Answer + mu[i] * (N / (1LL * i * i) % Mod) * (M / (1LL * i * i) % Mod) % Mod + Mod) % Mod;
printf ("%d", Answer);
return ;
}
int ZlycerQan = Main ();
int main (int argc, char *argv[]) {;}
LibreOJ #528. 「LibreOJ β Round #4」求和的更多相关文章
- LOJ528 「LibreOJ β Round #4」求和
LOJ528 「LibreOJ β Round #4」求和 先按照最常规的思路推一波: \[\begin{aligned} &\sum_{i=1}^n\sum_{j=1}^m\mu^2(\gc ...
- LibreOJ #517. 「LibreOJ β Round #2」计算几何瞎暴力
二次联通门 : LibreOJ #517. 「LibreOJ β Round #2」计算几何瞎暴力 /* LibreOJ #517. 「LibreOJ β Round #2」计算几何瞎暴力 叫做计算几 ...
- LibreOJ #527. 「LibreOJ β Round #4」框架
二次联通门 : LibreOJ #527. 「LibreOJ β Round #4」框架 /* LibreOJ #527. 「LibreOJ β Round #4」框架 %% xxy dalao 对于 ...
- LibreOJ #526. 「LibreOJ β Round #4」子集
二次联通门 : LibreOJ #526. 「LibreOJ β Round #4」子集 /* LibreOJ #526. 「LibreOJ β Round #4」子集 考虑一下,若两个数奇偶性相同 ...
- LibreOJ #525. 「LibreOJ β Round #4」多项式
二次联通门 : LibreOJ #525. 「LibreOJ β Round #4」多项式 官方题解 : /* LibreOJ #525. 「LibreOJ β Round #4」多项式 由于会有多种 ...
- LibreOJ #524. 「LibreOJ β Round #4」游戏
二次联通门 : LibreOJ #524. 「LibreOJ β Round #4」游戏 /* LibreOJ #524. 「LibreOJ β Round #4」游戏 找找规律就会发现.. 当有X的 ...
- LibreOJ #507. 「LibreOJ NOI Round #1」接竹竿
二次联通门 : LibreOJ #507. 「LibreOJ NOI Round #1」接竹竿 /* LibreOJ #507. 「LibreOJ NOI Round #1」接竹竿 dp 记录一下前驱 ...
- LibreOJ #516. 「LibreOJ β Round #2」DP 一般看规律
二次联通门 : LibreOJ #516. 「LibreOJ β Round #2」DP 一般看规律 /* LibreOJ #516. 「LibreOJ β Round #2」DP 一般看规律 set ...
- LibreOJ #6191. 「美团 CodeM 复赛」配对游戏
二次联通门 : LibreOJ #6191. 「美团 CodeM 复赛」配对游戏 /* LibreOJ #6191. 「美团 CodeM 复赛」配对游戏 概率dp */ #include <cs ...
随机推荐
- golang ---CPU信息
package main import ( "fmt" "github.com/StackExchange/wmi" ) type gpuInfo struct ...
- logback 日志相关
日志相关: logback:https://www.cnblogs.com/gavincoder/p/10091757.html https://www.cnblogs.com/hhhshct/p/9 ...
- IIS初始化设置预加载,解决程序池被回收第一次访问慢问题
问题现象: 部署到IIS上的项目,第一次访问比较慢,有时后空闲一段时间去访问也会很慢,经常隔天访问也会慢.这就是IIS回收导致的问题,IIS回收把程序池的内存释放,网站就相当与重启的状态,被回收后,我 ...
- C盘清理、C盘瘦身、省出30G
三招C盘瘦身30G,清理win10系统中虚占C盘空间的三大祸害 1.对C盘进行“磁盘清理” C盘右键->属性->磁盘清理->清理系统文件->勾选“windows更新清理”-&g ...
- 2019北航OO第三单元作业总结
1.梳理JML语言的理论基础.应用工具链情况 JML基础理论: JML(Java Modeling Language)是用于对Java程序进行规格化设计的一种表示语言.JML是一种行为接口规格语言,基 ...
- webapp之登录页面当input获得焦点时,顶部版权文本被顶上去 的解决方法
如上图,顶部版权是用绝对定位写的,被顶上去了,解决方法是判断屏幕大小,改变footer的定位方式: <script> var oHeight = $(document).height(); ...
- jmeter用什么查看结果报告
JMeter查看测试结果的方法很多,最常用的几种是:察看结果树.聚合报告.图形报表.邮件观察仪等.
- jmeter进行压测的步骤
1)安装jmeter和Badboy. 2)用badboy录制脚本,保存之后直接导出. 3)用jmeter打开badboy录制的脚本,假如是有参数的话,需要写一个csv的参数化文件,在jmeter中添加 ...
- “proxy” in package.json must be a string 解决办法
今天学习一个react项目.想从本地服务器获取数据. 直接axios.get('http://localhost:80/api/react/header.json'),报错跨域. 网上查了下,需要在p ...
- python实现进制转换(二、八、十六进制;十进制)
python实现进制转换(二.八.十六进制:十进制) (一)十进制整数转为二.八.十六进制 1.format实现转换>>> format(2,"b") # (10 ...