BZOJ1257(CQOI2007)[余数之和sum]--分块+等差数列
来源:互联网 发布:免费物流软件 编辑:程序博客网 时间:2024/06/05 21:09
【链接】
bzoj1257
【解题报告】
所以就想到了分块,将
然后对于每个块求一遍等差数列就行了。
#include<cstdio>#include<cmath>#define LL long longusing namespace std;int n,m,S;LL ans;int main(){ freopen("1257.in","r",stdin); freopen("1257.out","w",stdout); scanf("%d%d",&m,&n); S=sqrt(n); ans=0; if (m>n) ans+=(LL)(m-n)*n,m=n; for (int i=1; i<=S&&i<=m; i++) ans+=n%i; if (m<=S) return printf("%lld",ans),0; for (int i=1; i<=S; i++) { int L=n/(i+1)+1,R=n/i; if (L<S+1) L=S+1; if (R>m) R=m; if (L>R) continue; ans+=(LL)(n%L+n%R)*(R-L+1)/2; } printf("%lld",ans); return 0;}
阅读全文
0 0
- BZOJ1257(CQOI2007)[余数之和sum]--分块+等差数列
- [除法分块] BZOJ1257: [CQOI2007]余数之和sum
- 【除法分块】BZOJ1257 [CQOI2007]余数之和sum
- BZOJ1257: [CQOI2007]余数之和sum【分块】
- 【BZOJ1257】[CQOI2007]余数之和sum【余数求和】【分块】
- BZOJ1257 [CQOI2007]余数之和sum
- bzoj1257: [CQOI2007]余数之和sum
- [BZOJ1257][CQOI2007]余数之和sum
- bzoj1257: [CQOI2007]余数之和sum
- Bzoj1257[CQOI2007]余数之和sum
- [bzoj1257][CQOI2007]余数之和sum
- 【bzoj1257】【CQOI2007】【余数之和】【sum】
- BZOJ1257: [CQOI2007]余数之和sum
- 【bzoj1257】[CQOI2007]余数之和sum
- bzoj1257[CQOI2007] 余数之和sum
- 【bzoj1257】[CQOI2007]余数之和sum
- bzoj1257: [CQOI2007]余数之和sum
- 【bzoj1257】[CQOI2007]余数之和sum
- 文章标题
- 11月30日笔记
- 如何做到低延迟OTT视频直播
- Android JNI开发
- ObjectBox[八] 关系
- BZOJ1257(CQOI2007)[余数之和sum]--分块+等差数列
- CCF之ISBNNumber
- 图像开闭运算
- caffe Windows下 FCN 跑sift-flow数据
- 面试感悟:3年工作经验java程序员应有的技能
- CentOS用Nginx和OwnCloud搭建私有云盘
- MySQL 主从同步配置
- 提高效率10倍
- Raptor入门练习