美味果冻

∑i=1n∑j=1ii×⌊ij⌋j∑i=1n∑j=inj×⌊ji⌋i\sum_{i = 1} ^{n} \sum_{j = 1} ^{i} i \times \lfloor \frac{i}{j} \rfloor ^ j\\ \sum_{i = 1} ^{n} \sum_{j = i} ^{n} j \times \lfloor \frac{j}{i} \rfloor ^ i\\ i=1∑n​j=1∑i​i×⌊ji​⌋ji=1∑n​j=i∑n​j×⌊ij​⌋i

接下来只需要从小到大枚举iii,因为有j∈[ki,(k+1)i],⌊ji⌋=kj \in[ki, (k + 1)i], \lfloor \frac{j}{i} \rfloor = kj∈[ki,(k+1)i],⌊ij​⌋=k,所以这里有一个分块性质,差分前缀和即可得到。

最后在得到的数组中乘上一个数组下标,在求一次前缀和即是答案了。

#include <bits/stdc++.h>using namespace std;const int N = 3e6 + 10, mod = 1e9 + 7;int f[N], g[N], n;void init() {for (int i = 1; i < N; i++) {g[i] = 1;}for (int i = 1; i < N; i++) {for (int j = i; j < N; j += i) {int l = j, r = j + i;g[j / i] = 1ll * g[j / i] * (j / i) % mod;int cur = g[j / i];f[l] = (f[l] + cur) % mod;if (r < N) f[r] = (f[r] - cur + mod) % mod;}}for (int i = 1; i < N; i++) {f[i] = (f[i - 1] + f[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();scanf("%d", &n);int ans = 0;for (int i = 1; i <= n; i++) {ans = (ans + 1ll * i * f[i] % mod) % mod;}printf("%d\n", ans);return 0;
}

美味果冻(牛客练习赛53B)相关推荐

  1. 牛客练习赛52 | C | [烹饪] (DP,裴蜀定理,gcd)

    牛客练习赛52 C 烹饪 链接:https://ac.nowcoder.com/acm/contest/1084/C来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 327 ...

  2. 牛客练习赛81 E. 小 Q 与函数求和 1( “简单莫比乌斯反演” ,欧拉函数性质)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 牛客练习赛81 E. 小 Q 与函数求和 1( "简单莫比乌斯反演" ) Prob ...

  3. 解题报告(一)C、(牛客练习赛41 F)简单数学题(数论 + FWT)(3.5)

    繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量题解和代码,题目难度不一定按照题号排序,我会在每道题后面加上题目难度指数(1∼51 \sim 51∼5),以模板题难度 11 ...

  4. 牛客练习赛34 E little w and Digital Root(数位dp)

    title: 牛客练习赛34 E little w and Digital Root(数位dp) date: 2018-12-17 22:38:37 tags: 数位dp categories:ACM ...

  5. 牛客练习赛34 - C little w and Segment Coverage(思维、树状数组)

    title: 牛客练习赛34 - C little w and Segment Coverage(思维.树状数组) date: 2018-12-15 16:36:55 tags: [树状数组,思维] ...

  6. 牛客练习赛73 D 离别(线段树+右端点排序离线查询)

    牛客练习赛73 D 离别 思路: 对于每一个固定的右端点i,我们都找到一个区间(l,r)使得区间中的点为左端点时 里面最大的的种数为k. 这个可以用队列或者vector来维护. 然后我们对于q个查询, ...

  7. 牛客练习赛75 D 减数游戏(队列优化(需要取模的)堆)

    牛客练习赛75 D 减数游戏 思路:写一下式子可以发每次选择最小的两个数进行操作,最后得到的答案会是最大的,那我们可以将它放进一个最小堆中来维护,但是里面的数是需要取模的,当它取模的时候,将会变小.那 ...

  8. 妄想集合(牛客练习赛90)

    妄想集合(牛客练习赛90) 题意: 开始有 n 个可重集合,开始时每一个集合中都有一个数,有 m 个操作. Quant l r x\text{Quant l r x}Quant l r x:往编号在 ...

  9. 踩不出足迹(牛客练习赛88 )

    踩不出足迹(牛客练习赛88 ) 题意: 长度为n的数组a,每个数是一个k位二进制 定义一下操作: 令第一次得到的结果为 a1a_1a1​.你需要从第二个数开始,每次可以选择与上一次得到的结果异或或者同 ...

最新文章

  1. RocketMQ集群搭建-4.2.0版本
  2. 写在创业的路上:如何从无到有的打造一个产品
  3. linux——yum的搭建说明
  4. 字符串字母大小写转换
  5. 快手内测10分钟长视频 以吸引更多MCN、用户入驻
  6. oracle 二进制与运算,Oracle怎么操作进行二进制的比对
  7. 蜘蛛侠论坛 2.0 源代码发布
  8. ajax无刷新提交表,Ajax无刷新提交表单和显示
  9. 【优化求解】基于matlab遗传算法求解车辆发车间隔优化问题【含Matlab源码 132期】
  10. C++笔记----运算符重载
  11. 笔记本电脑配置知识大全
  12. 在计算机上配置超级终端,超级终端设置步骤【详细步骤】
  13. 电子商务概论学习总结
  14. 苹果cmsv10怎么添加常见的几种广告代码
  15. 关键词词云怎么做_7个好用的在线词云生成工具
  16. css ms是什么意思,CSS 3中-webkit-, -moz-, -o-, -ms-这些私有前缀的含义和兼容
  17. 智慧城市的背后是大数据的深度挖掘和利用
  18. 本地无法打开localhost或127.0.1解决方案
  19. 如何将CSDN博客下载为PDF文件
  20. 车间现场管理5S如何落到实处?

热门文章

  1. import 别名_Python基础找茬系列09--import和from-import的引用区别
  2. 李宏毅Reinforcement Learning强化学习入门笔记
  3. 梯度消失和梯度爆炸_知识干货-动手学深度学习-05 梯度消失和梯度爆炸以及Kaggle房价预测...
  4. 面试可以,但别打扰我睡觉! | 今日最佳
  5. 意大利归还中国文物;翟天临咪蒙成考公务员题目;携程回应五一机票涨价;腾讯未成年人网络保护体系上线;这就是今天的大新闻...
  6. 经济学家告诉你,胸越大的女生越会花钱!
  7. 看完此文再不懂区块链算我输:手把手教你用Python从零开始创建区块链
  8. 《SAS编程与数据挖掘商业案例》学习笔记之一
  9. java数组深拷贝和浅拷贝_java中的深拷贝与浅拷贝(值类型 vs 引用类型)
  10. golang ide 环境搭建_Golang 入门 : 打造开发环境