BZOJ1257: [CQOI2007]余数之和
2015-11-25 19:49
316 查看
设数列 Ai=X mod i
分析可得 余数是一些等差数列头尾相接组合起来的 然后就是二分找这些等差数列喽
#include<cstdio>#define SUM(L,R) (((L+R)*(R-L+1))>>1)using namespace std;#define LL long longLL n,k,ans;int main(){scanf("%lld%lld",&n,&k);ans=n*k;LL s=1,L,R,M;for(;s<=n&&s<=k;s=L+1){L=s;R=n;while(L<R){M=(L+R+1)>>1;if(k/s>k/M)R=M-1;else L=M;}ans-=SUM(s,R)*(k/s);}printf("%lld\n",ans);return 0;}
相关文章推荐
- next_permutation函数
- 液晶之12864代码及中文乱码问题
- Python3.x List方法集合
- Chroot相关
- 逆秩链表
- 视频压缩预测编码和变换编码概述
- JavaScript包装对象
- LeetCode 28_Implement strStr()
- VLC 实现的简单播放器
- 黑马程序员——JDK的新特性笔记整理
- Linux学习笔记之Makefile多个c文件的编写
- 干货:2016年百度技术面试官的一些思考
- OpenJudge_P1746 子串(KMP)
- Tcpdump
- JavaScript作用域链
- Xcode_代码段
- 总结Spring、Hibernate、Struts2官网下载jar文件
- 053-19 What recommendations does the SQL Access Advisor provide for optimizing SQL queries? (Choose
- 匹配指定字符开头,但不包含该字符,已指定字符结尾的字符串
- lua的metatable讲解