[BZOJ1257][CQOI2007]余数求和(数论)
来源:互联网 发布:卖家怎么防止淘宝客 编辑:程序博客网 时间:2024/06/10 15:29
我实在是太弱,只好去刷水题了。
首先注意到,对于任意一个
对于任意一个
设
化简得
即对于任意一个
也就是说,对于一段区间
这样就很好做了。具体实现见代码。注意,对于任意一个
代码:
#include <cmath>#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;inline int read() { int res = 0; bool bo = 0; char c; while (((c = getchar()) < '0' || c > '9') && c != '-'); if (c == '-') bo = 1; else res = c - 48; while ((c = getchar()) >= '0' && c <= '9') res = (res << 3) + (res << 1) + (c - 48); return bo ? ~res + 1 : res;}typedef long long ll;const int N = 1e5 + 5;int n, k, l[N], r[N], v[N]; ll ans;int main() { int i, tot = 0; n = read(); k = read(); for (i = 1; i <= k;) { v[++tot] = k / i; l[tot] = i; r[tot] = k / v[tot]; i = r[tot] + 1; } for (i = 1; i <= tot; i++) { int len = min(n, r[i]) - l[i], t = k % l[i]; ans += 1ll * t * (len + 1) - 1ll * v[i] * len * (len + 1) / 2; if (len == n) break; } if (n > k) ans += 1ll * (n - k) * k; cout << ans << endl; return 0;}
阅读全文
0 0
- [BZOJ1257][CQOI2007]余数求和(数论)
- [BZOJ1257][CQOI2007]余数之和sum(数论)
- bzoj1257: [CQOI2007]余数之和sum(数论)
- BZOJ1257 洛谷2261 [CQOI2007]余数求和
- 【bzoj1257】[CQOI2007]余数之和sum 数论乱搞
- bzoj1257[CQOI2007]余数之和sum 数论
- 【BZOJ1257】[CQOI2007]余数之和sum【余数求和】【分块】
- [BZOJ1257][CQOI2007]余数之和
- BZOJ1257: [CQOI2007]余数之和
- BZOJ1257 [CQOI2007]余数之和sum
- bzoj1257: [CQOI2007]余数之和sum
- [BZOJ1257]CQOI2007余数之和|数学
- [BZOJ1257][CQOI2007]余数之和sum
- bzoj1257: [CQOI2007]余数之和sum
- Bzoj1257[CQOI2007]余数之和sum
- [bzoj1257][CQOI2007]余数之和sum
- 【bzoj1257】【CQOI2007】【余数之和】【sum】
- BZOJ1257: [CQOI2007]余数之和sum
- clone的fork与pthread_create创建线程有何不同&pthread多线程编程的学习小结
- Keil ARM开发 error L6236E错误解决
- 【MVP+Retrofit+RxAndroid+dagger2】读易读应用框架笔记(二)网络请求与回调篇
- I/O端口编址方式和I/O内存
- 关于网页中登录注册时input表单自动填充的笔记
- [BZOJ1257][CQOI2007]余数求和(数论)
- windows下的TimerQueue
- python字典,集合,函数
- c++ 基础之 namespace_quote
- oracle触发器
- HDU 5873 Football Games (公式题)
- Android 8.0 功能和 API
- Oracle的多版本控制小实验
- 八大排序算法