bzoj 1257: [CQOI2007]余数之和sum
来源:互联网 发布:excel筛选数据后复制 编辑:程序博客网 时间:2024/06/03 15:07
Description
给出正整数n和k,计算j(n, k)=k mod 1 + k mod 2 + k mod 3 + … + k mod n的值,其中k mod i表示k除以i的余数。例如j(5, 3)=3 mod 1 + 3 mod 2 + 3 mod 3 + 3 mod 4 + 3 mod 5=0+1+0+3+3=7
Input
输入仅一行,包含两个整数n, k。
Output
输出仅一行,即j(n, k)。
Sample Input
5 3
Sample Output
7
HINT
50%的数据满足:1<=n, k<=1000 100%的数据满足:1<=n ,k<=10^9
solution
根据题目可以写出
ans=∑i=1nk%i 首先知道一点
a%b 可以表示为a−b∗⌊ab⌋ ,写过高精取模的人应该都知道所以
ans=∑i=1nk−i∗⌊ki⌋=n∗k−∑i=1ni∗⌊ki⌋ ⌊ki⌋ 可以除法分块对于
⌊ki⌋ 相同的一部分,可以用等差数列求和公式来求假设在相同的一块内
⌊ki⌋=x ,把x 提出来那一块的答案就是x∗(i+i+1+⋯) 里面是差为1的等差数列,所以就可以用等差数列求和公式
code
#include<cstdio>#include<algorithm>using namespace std;typedef long long ll;int main() { ll n,k; scanf("%lld%lld",&n,&k); ll ans=n*k; for(ll l=1,r;l<=n;l=r+1) { if(k/l!=0) r=min(k/(k/l),n); else r=n; ans-=(k/l)*(r-l+1)*(l+r)/2; } printf("%lld",ans); return 0;}
阅读全文
0 0
- BZOJ 1257 [CQOI2007]余数之和sum 题解
- bzoj 1257 [CQOI2007] 余数之和 sum 题解
- BZOJ 1257: [CQOI2007]余数之和sum
- 【BZOJ 1257】 [CQOI2007]余数之和sum
- 【BZOJ 1257】 [CQOI2007]余数之和sum
- bzoj 1257: [CQOI2007]余数之和sum
- bzoj 1257: [CQOI2007]余数之和sum
- bzoj 1257: [CQOI2007]余数之和sum
- BZOJ 1257 [CQOI2007]余数之和sum
- 【BZOJ 1257】[CQOI2007]余数之和sum
- 【BZOJ 1257】[CQOI2007]余数之和sum
- bzoj 1257: [CQOI2007]余数之和sum 数学
- BZOJ 1257 [CQOI2007]余数之和sum 数论
- bzoj 1257: [CQOI2007]余数之和sum
- bzoj 1257: [CQOI2007]余数之和sum
- BZOJ 1257: [CQOI2007]余数之和sum
- bzoj 1257: [CQOI2007]余数之和sum
- 1257: [CQOI2007]余数之和sum
- Codeforces868F Yet Another Minimization Problem -- 决策单调性优化DP
- 组合数问题 解题报告
- JZOJ 5397. 【NOIP2017提高A组模拟10.6】Biology
- 单例模式的7种实现方式及分析
- MySQL存储过程与视图
- bzoj 1257: [CQOI2007]余数之和sum
- 圆圈中最后剩下的数
- QString 用法小结
- 排序算法之冒泡排序
- linux 进程控制
- chapter7:朴素贝叶斯及文本---非结构化文本分类
- nodejs压缩文件
- 今天学习css3动画
- 学习UnityShader中常用的函数