【数论】bzoj4174tty的求助
来源:互联网 发布:西安it 编辑:程序博客网 时间:2024/06/06 00:23
题目链接
(ps:这是一道权限题…)
计算
其中
位小数。
根本不会的说…
然后去看po姐博客就一脸懵逼辣…
以下摘自popoqqq博客,并加上蒟蒻的辣鸡理解…
单独考虑最后一个和式
上式是考虑
然后分开考虑每一个独立的和式。
令
这相当于在枚举
和之前同样的考虑方式,考虑
很明显,
移项
对于第二个和式:
根据和式的性质,可以将常数提取出来。
对于第三个和式,化简的过程与第一个和式的部分相似。
这相当于在枚举
接着,我们来整理一下这些柿子:
把和式展开,其中
对于最后的和式中的
然后我们就枚举
#include <iostream>#include <cstdio>#define LL long long int#define mod 998244353#define MAXN 500005using namespace std;int n, m, prime[MAXN], tot;LL u[MAXN];bool flag[MAXN];double x;inline void init(){ u[1]=1; for(int i=2, j, k;i<MAXN;++i) { if(!flag[i])prime[++tot]=i, u[i]=-1; for(j=1;j<=tot&&(k=i*prime[j])<MAXN;++j) { flag[k]=1; if(i%prime[j]==0){u[k]=0;break;} u[k]=-u[i]; } } for(int i=1;i<MAXN;++i) u[i]=(u[i]+u[i-1]+mod+mod)%mod;}LL sum(LL n){return n*(n+1)/2%mod;}int main(){ init(); scanf("%d%d%lf",&n,&m,&x); LL ans=((sum(n)*sum(m)-n*sum(m)-m*sum(n))%mod+mod)%mod, k; if(n>m)swap(n,m); for(int i=1, nn, mm, last;i<=n;++i) { k=i+int(x/i)*i*2; nn=n/i, mm=m/i; for(int j=1;j<=nn;j=last+1) { last=min(nn/(nn/j),mm/(mm/j)); ans=(ans+k*(u[last]-u[j-1])%mod*(nn/j)%mod*(mm/j))%mod; } } cout<<ans*499122177%mod<<'\n'; return 0;}
0 0
- 【数论】bzoj4174tty的求助
- bzoj 4174 tty的求助 数论 莫比乌斯反演
- 【数论】bzoj3601一个人的数论
- 求助?WinCE的问题
- 求助Delphi的入门教程
- 迷惘者的求助
- 求助!关于DES的
- 求助JMF的配置
- 一个初学者的求助
- 数据结构的问题求助
- 求助EXT的问题。。。。。。。
- 求助:ccc_win的使用??
- 纠结的Sql求助
- 迷茫的求助者
- 问题求助的网站
- 【求助】sed的使用
- 小明的求助
- 题解:艾米利亚的求助
- 剑指offer(54):构建乘积数组
- qt creator中出现常量中有换行符或乱码问题
- html5 拖拽
- 多边形构成问题(今日头条笔试题)
- 『Python』序列学习总结之五 ——列表推导式的一些应用
- 【数论】bzoj4174tty的求助
- python 代码缩进
- IDE习惯配置之颜色篇
- Java 8十个lambda表达式案例
- 一直没效果?你的SEO策略是时候调整了!
- Lua垃圾回收和弱引用
- Hibernate乐观锁实现之Version
- 详解数据库中的事务、隔离级别、并发控制
- 4.函数