博客
关于我
牛客多校第七场H(数论分块)
阅读量:256 次
发布时间:2019-03-01

本文共 733 字,大约阅读时间需要 2 分钟。

专题里面有,后悔没写,哭唧唧

#include
using namespace std;typedef long long ll;const int mod = 1e9 + 7;ll n,k;ll run(ll x){ ll j;/*i是前界,j是后界*/ ll res = 0; for(ll i = 2;i <= min(x,k);i = j + 1){ ll y = x / i; j = min(x / y,k); /*右边界大于k在同一个n/i的数量上会有变化,会多加上几个n/i 右边界是可以大于k的,而且情况还不少,所以有时候不能直观去看 */ res = (res + ((j - i + 1) * y) % mod); } return res;}int main(){ scanf("%lld%lld",&n,&k); ll sum = 0; sum += n + k - 1; //如果数论分块会加上n + n - 1 //k不一定等于n,与实际不符 sum = (sum + run(n) + run(n - 1)) % mod; printf("%lld\n",sum); return 0;}/*这道题是什么意思呢就是通过观察,我们可以知道(n,k)-->(nk,k) 第一个整数一定是第二个整数的倍数(n,k)-->(nk+1,k)令n = xk(第一个整数一定是k的倍数);1. n == xk2. n == xk + 1那么n == xk 或n - 1 == xk所以这道题就转化成了是求n / k(k = 1,2,3... )的和方法就是数论分块*/

转载地址:http://isox.baihongyu.com/

你可能感兴趣的文章
mysql字段类型介绍
查看>>
mysql字段解析逗号分割_MySQL逗号分割字段的行列转换技巧
查看>>
MySQL字符集与排序规则
查看>>
MySQL字符集乱码
查看>>
mysql字符集设置
查看>>
mysql存储IP地址的数据类型
查看>>
mysql存储中文 但是读取乱码_mysql存储中文乱码
查看>>
MySQL存储引擎
查看>>
MySQL存储引擎
查看>>
MySQL存储引擎--MYSIAM和INNODB引擎区别
查看>>
Mysql存储引擎(1):存储引擎体系结构和介绍
查看>>
Mysql存储引擎(2):存储引擎特点
查看>>
MySQL存储引擎--MyISAM与InnoDB区别
查看>>
mysql存储总结
查看>>
mysql存储登录_php调用mysql存储过程会员登录验证实例分析
查看>>
MySql存储过程中limit传参
查看>>
MySQL存储过程入门
查看>>
mysql存储过程批量建表
查看>>
MySQL存储过程的使用实现数据快速插入
查看>>
mysql存储过程详解
查看>>