博客
关于我
牛客多校第七场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/

你可能感兴趣的文章
mysqlbinlog报错unknown variable ‘default-character-set=utf8mb4‘
查看>>
mysqldump 参数--lock-tables浅析
查看>>
mysqldump 导出中文乱码
查看>>
mysqldump 导出数据库中每张表的前n条
查看>>
mysqldump: Got error: 1044: Access denied for user ‘xx’@’xx’ to database ‘xx’ when using LOCK TABLES
查看>>
Mysqldump参数大全(参数来源于mysql5.5.19源码)
查看>>
mysqldump备份时忽略某些表
查看>>
mysqldump实现数据备份及灾难恢复
查看>>
mysqldump数据库备份无法进行操作只能查询 --single-transaction
查看>>
mysqldump的一些用法
查看>>
mysqli
查看>>
MySQLIntegrityConstraintViolationException异常处理
查看>>
mysqlreport分析工具详解
查看>>
MySQLSyntaxErrorException: Unknown error 1146和SQLSyntaxErrorException: Unknown error 1146
查看>>
Mysql_Postgresql中_geometry数据操作_st_astext_GeomFromEWKT函数_在java中转换geometry的16进制数据---PostgreSQL工作笔记007
查看>>
mysql_real_connect 参数注意
查看>>
mysql_secure_installation初始化数据库报Access denied
查看>>
MySQL_西安11月销售昨日未上架的产品_20161212
查看>>
Mysql——深入浅出InnoDB底层原理
查看>>
MySQL“被动”性能优化汇总
查看>>