[2007CQOI]余数求和——除法分块
来源:互联网 发布:电商淘宝培训 编辑:程序博客网 时间:2024/05/17 00:52
题目大意
给出正整数n和k,计算
题目的描述十分清楚,注意到
因为取模的性质,所以可以继续化简
前面一部分的值是可以直接算出来的,我们把后面一部分的表给打出来,就会发现一个规律,就是其中有相当一部分的连续的i的
由于n可能大于k,所以在i大于k的时候要加一个判断,具体的代码如下
#include<iostream>#include<algorithm>#include<cstdio>#include<cstring>#include<cmath>#include<map>#define REP(i,a,b) for(register int i=a;i<=b;++i)#define DREP(i,a,b) for(register int i=a;i>=b;--i)#define ll long longusing namespace std;const int maxn=1e7+10;ll n,k,ans;int main(){ scanf("%lld%lld",&n,&k); ans=n*k; for(ll l=1,r;l<=n;l=r+1){//对于每一个可以整除分块的区间定义一个l和一个r if(l<=k)r=min((k/(k/l)),n); else r=n;//n>k时的判断 ans-=(k/l)*(l+r)*(r-l+1)/2;//详情请见上面的公式 } printf("%lld\n",ans); return 0;}
阅读全文
1 0
- [2007CQOI]余数求和——除法分块
- [除法分块] BZOJ1257: [CQOI2007]余数之和sum
- 【除法分块】BZOJ1257 [CQOI2007]余数之和sum
- 51nod-1225-余数求和(分块)
- 【BZOJ1257】[CQOI2007]余数之和sum【余数求和】【分块】
- 51Nod 1225 余数之和(除法分块+等差数列)
- bzoj1257[CQOI]余数之和
- CQOI余数之和
- 【SPOJ-NAGAY】Joseph’s Problem【余数求和】【分块】
- bzoj1257(SPOJ-NAGAY Joseph’s Problem(余数求和))(分块)
- [分块]51 Nod——1225 余数之和
- PHP语法基础篇——除法取整和取余数
- Latex除法余数
- CQOI2007 余数求和
- 余数求和 洛谷p2261
- [CQOI2007]余数求和
- 综合除法和余数定理
- 再谈分数求和:求最大公约数——老吴憨算法和辗转相除法
- String、StringBuffer、StringBuilder的区别
- coding coffee HTML文档
- 运维之python篇------2.斐波那契数列、模拟cp操作、生成8位随机密码
- 自动化安装
- 小Tips
- [2007CQOI]余数求和——除法分块
- Java基础之Dalvik和JVM的认识
- JVM分析
- 京东成武林魔头?几十家店铺因被侵害经营集体退出京东
- 第三章 虚拟机性能监控与故障处理工具
- android fat-aar.gradle中文注释
- Visual Studio 2017的离线安装包下载和安装
- 使用selenium中的driver.close()函数
- android中异常oom和memory leak