bzoj 4816 [Sdoi2017]数字表格

匿名 (未验证) 提交于 2019-12-03 00:43:02

题面

https://www.lydsy.com/JudgeOnline/problem.php?id=4816

题解

显然是莫比乌斯反演

首先得出

然后发现 我们要把d提出去

这样就好做了

跟SDOI2015的一道题类似

因为 $\left \lfloor \frac{n}{p} \right \rfloor \left \lfloor \frac{m}{p} \right \rfloor$只有$(\sqrt n +\sqrt m)$种取值 并且$\prod_{k|p} f[k]^{\mu(\frac{p}{k})}$对于每个p都是固定的

所以我们可以预处理$\prod_{k|p} f[k]^{\mu(\frac{p}{k})}$的前缀积 以及前缀积的逆元 这样可以方便的算出区间的乘积

然后对于每一组询问 我们枚举$(\sqrt n +\sqrt m)$种取值 就可以得出结果

Code

 1 #include<bits/stdc++.h>  2 using namespace std;  3 typedef long long ll;  4   5 ll read(){  6     ll x=0,f=1;char c=getchar();  7     while(c<0 || c>9){if(c==-)f=-1;c=getchar();}  8     while(c>=0 && c<=9){x=x*10+c-0;c=getchar();} 
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!