BZOJ1257 余数之和sum
来源:互联网 发布:小影怎么添加网络音乐 编辑:程序博客网 时间:2024/06/05 06:26
阈值优化???
题目传送门
对于x mod p,可以理解为x-p*(x/p)。不难发现存在区间[l,r],x/i的值都是相同的,因此sigma(x mod i (r>=i>l))的值就是一个等差数列。于是开始我们先把sum赋成n*m,然后减去每个区间的sigma(i*(x/i))即可。一直做到sqrt(n)。
但是算完后还有[1,n/(sqrt(n)+1)]这个区间没有用算,直接一遍算过去就好啦。
注意判断范围。
代码:
#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>#define LL long longusing namespace std;LL n,m;int main(){ scanf("%lld%lld",&m,&n); LL sum=n*m; LL pd=sqrt(n); for (int i=1;i<=pd;i++){ LL l=n/(i+1)+1,r=n/i;//枚举区间 if (l>m) continue;//判越界 if (r>m) r=m; sum=sum-(l+r)*(r-l+1)/2*i; } for (int i=1;i<=n/(pd+1);i++) if (i<=m) sum=sum+n%i-n; printf("%lld\n",sum); return 0;}
阅读全文
1 0
- BZOJ1257余数之和sum
- BZOJ1257 余数之和sum
- BZOJ1257 [CQOI2007]余数之和sum
- bzoj1257: [CQOI2007]余数之和sum
- [BZOJ1257][CQOI2007]余数之和sum
- bzoj1257 余数之和sum 数论
- bzoj1257: [CQOI2007]余数之和sum
- Bzoj1257[CQOI2007]余数之和sum
- [bzoj1257][CQOI2007]余数之和sum
- 【bzoj1257】【CQOI2007】【余数之和】【sum】
- BZOJ1257余数之和sum+数学
- BZOJ1257: [CQOI2007]余数之和sum
- 【bzoj1257】[CQOI2007]余数之和sum
- bzoj1257[CQOI2007] 余数之和sum
- 【bzoj1257】[CQOI2007]余数之和sum
- bzoj1257: [CQOI2007]余数之和sum
- 【bzoj1257】[CQOI2007]余数之和sum
- bzoj1257 [CQOI2007]余数之和sum
- JavaScript的基本类型和引用类型
- 关于Calendar用法的一些总结
- wireshark找不到接口的处理方法
- java 返回字符串中位置n的代码单元和位置n的代码点
- 原 Spring 项目转到 Spring boot 项目的一些变动
- BZOJ1257 余数之和sum
- Struts拦截器和过滤器的区别
- python下使用alembic管理MYSQL数据库
- 【python】(2)网络编程
- UVALive 4513 Stammering Aliens hash+二分
- codeforces 803D Magazine Ad
- 详解 Tomcat 配置文件 server.xml
- 用递归算法计算一个自然数的二进制表示中的“1”的个数
- 网络管理(三)