P4900 食堂

推导

ans=∑i=1n∑j=1iij−∑i=1n∑j=1i⌊ij⌋前项为∑i=1ni∑j=1iinv(j),两次前缀和即可得到后项为∑i=1n∑j=1i⌊ij⌋=∑i=1n∑j=1id(j),nloglogn+2n即可得到ans = \sum_{i = 1} ^{n} \sum_{j = 1} ^ {i} \frac{i}{j} - \sum_{i = 1} ^{n} \sum_{j = 1} ^{i} \lfloor\frac{i}{j} \rfloor\\ 前项为\sum_{i = 1} ^{n}i \sum_{j = 1} ^{i} inv(j), 两次前缀和即可得到\\ 后项为\sum_{i = 1} ^{n} \sum_{j = 1} ^{i} \lfloor \frac{i}{j} \rfloor = \sum_{i = 1} ^{n} \sum_{j = 1} ^{i} d(j),nloglogn + 2n即可得到\\ ans=i=1∑n​j=1∑i​ji​−i=1∑n​j=1∑i​⌊ji​⌋前项为i=1∑n​ij=1∑i​inv(j),两次前缀和即可得到后项为i=1∑n​j=1∑i​⌊ji​⌋=i=1∑n​j=1∑i​d(j),nloglogn+2n即可得到

本来想瞎开题,没想到又碰到数学题了

代码

/*Author : lifehappy
*/
#pragma GCC optimize(2)
#pragma GCC optimize(3)
#include <bits/stdc++.h>#define mp make_pair
#define pb push_back
#define endl '\n'
#define mid (l + r >> 1)
#define lson rt << 1, l, mid
#define rson rt << 1 | 1, mid + 1, r
#define ls rt << 1
#define rs rt << 1 | 1using namespace std;typedef long long ll;
typedef unsigned long long ull;
typedef pair<int, int> pii;const double pi = acos(-1.0);
const double eps = 1e-7;
const int inf = 0x3f3f3f3f;inline ll read() {ll f = 1, x = 0;char c = getchar();while(c < '0' || c > '9') {if(c == '-')    f = -1;c = getchar();}while(c >= '0' && c <= '9') {x = (x << 1) + (x << 3) + (c ^ 48);c = getchar();}return f * x;
}const int N = 1e6 + 10, mod = 998244353;ll quick_pow(ll a, int n) {ll ans = 1;while(n) {if(n & 1) ans = ans * a % mod;a = a * a % mod;n >>= 1;}return ans;
}ll prime[N], inv[N], f1[N], f2[N], cnt;bool st[N];void init() {inv[1] = 1;for(int i = 2; i < N; i++) {if(!st[i]) {inv[i] = quick_pow(i, mod - 2);prime[++cnt] = i;}for(int j = 1; j <= cnt && 1ll * i * prime[j] < N; j++) {st[i * prime[j]] = 1;inv[i * prime[j]] = inv[i] * inv[prime[j]] % mod;if(i % prime[j] == 0) {break;}}}for(int i = 1; i < N; i++) {inv[i] = (inv[i - 1] + inv[i]) % mod;for(int j = i; j <= N; j += i) {f2[j]++;}}for(int i = 1; i < N; i++) {f1[i] = 1ll * i * inv[i] % mod;f2[i] = (f2[i - 1] + f2[i]) % mod;}for(int i = 1; i < N; i++) {f1[i] = (f1[i - 1] + f1[i]) % mod;f2[i] = (f2[i - 1] + f2[i]) % mod;}
}int main() {// freopen("in.txt", "r", stdin);// freopen("out.txt", "w", stdout);// ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);init();int T = read();while(T--) {int A = read(), B = read();printf("%lld\n", ((f1[B] - f2[B] - f1[A - 1] + f2[A - 1]) % mod + mod) % mod);}return 0;
}

P4900 食堂(数学式子推导)相关推荐

  1. 人工智能实战_第八次作业_手写数学式子识别_廖盈嘉

    第8次作业:手写数学式子识别 项目 内容 这个作业属于哪个课程 人工智能实战2019 这个作业的要求在哪里 人工智能实战第八次作业 我在这个课程的目标是 学会.理解和应用神经网络知识来完成一个app ...

  2. 【压缩感知合集7】压缩感知RIP有限等距性:定义解析,理解说明,数学原理推导

    0 前情提要 0.1 数学模型和总体框图如下 给定输入信号X∈RN×1\boldsymbol{X} \in \mathbb{R}^{N\times1}X∈RN×1,最终想要得到压缩信号A∈RM×1\b ...

  3. LOOPS HDU - 3853 (概率dp):(希望通过该文章梳理自己的式子推导)

    题意:就是让你从(1,1)走到(r, c)而且每走一格要花2的能量,有三种走法:1,停住.2,向下走一格.3,向右走一格.问在一个网格中所花的期望值. 首先:先把推导动态规划的基本步骤给出来. · 1 ...

  4. 数学式子中arg min,arg max的含义

    arg 是变元(即自变量argument)的英文缩写. arg min 就是使后面这个式子达到最小值时的变量的取值 arg max 就是使后面这个式子达到最大值时的变量的取值 例如 函数F(x,y): ...

  5. sin35 在C语言中怎么表示,数学式子sin35°写成VB的表达式是______。

    摘要: 在网页制作中,数学式定义公共样式的目的是为了清除各浏览器的默认样式,使得网页在各浏览器中显示的效果一致.( )表达式空气开关没有过压保护功能.数学式劳动者若未能与单位协商一致,可以自行解除劳动 ...

  6. 最小二乘法的数学原理推导及python代码

    1. 什么是最小二乘法? 最小二乘法(Ordinary Least Squares)是一种常用的数据拟合方法,它通过最小误差的平方和来找到一组数据的最佳函数匹配. 很多软件中都包含最小二乘法功能的模块 ...

  7. NCD 2019题解M. NCD Salary【数学式子处理】

    题目 题意,求ab和cd大小关系.均是大数 做一下数学处理:两边取对数,变成blog(a) 和 dlog©:底数是什么无关紧要,为了方便,用c++自带的log10函数就很棒.这里需要特判一下b和d等于 ...

  8. C语言写一个简单的数学程序,用C语言计算简单的数学式子

    //求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字 //如2+22+222+2222+22222 #include int main() { int num=0; int ...

  9. 数学式子对应的c语言表达式是,把数学式写成C语言表达式

    (1) 3.26*exp(x)+1.0/3.0*pow((a+b), 4) (2) 2*sqrt(x)+(a+b)/(3.0*sin(x)) (3) g*m1*m2/(r*r) (4) double  ...

最新文章

  1. Python可视化中的Matplotlib(6.散点图以及详细参数、为图形添加文字、注释、箭头以及它们的参数)
  2. java高并发(二)并发与高并发基本概念
  3. gitlab创建分支上传文件_Gitlab管理和使用基本教程
  4. toString()方法使用
  5. angularJS中,怎么阻止事件冒泡
  6. c++11或c++14或c++17参数包的使用
  7. Windows核心编程_实现QQ好友来消息时任务栏头像闪烁功能
  8. Linux连接锐捷校园网客户端
  9. 五、嵌入式学习笔记--GPIO接口
  10. 微信网页授权之取消授权
  11. python中类定义要素_python对象的三要素是什么
  12. 关于人工智能不会使大脑变懒惰的议论文_人工智能的好处和风险:所有您需要知道的...
  13. 【 史上最全】测绘、遥感RS、地信GIS国家级比赛竞赛整理
  14. ShaderForge适用于unity 2018x、2019x、2020版本
  15. 基于java安防管理平台计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署
  16. 拯救者y7000p进入BIOS
  17. Xcode 的各种版本的下载地址
  18. 2012年最新的12款超棒jQuery插件
  19. Stata无法安装外部命令解决办法 cannot write in directory
  20. 台商华硕遭500万美元索赔真相调查(二)

热门文章

  1. import 别名_Python基础找茬系列09--import和from-import的引用区别
  2. python中多维数组_python学习笔记-多维数组
  3. What?你还搞不懂什么是物体检测?
  4. 你真的不了解这个地球
  5. 荐书 | 10本书给你计算机大师思维
  6. 对5种主流编程语言的吐槽
  7. c语言时间算法如何以毫秒显示,C语言时间的方法.doc
  8. linux运行.pak文件,使用game-to-flatpak脚本将商业Linux游戏安装程序转换为Flatpak应用程序...
  9. oracle cpu 100%原因,oracle 12.1 cpu 100%
  10. Php xml 目录,PHP-PHP+xml的无限分类树目录的方法?