洛谷 P1403 [AHOI2005]约数研究
2024-08-31 12:37:18
怎么会有这么水的省选题
一定是个签到题。
好歹它也是个省选题,独立做出要纪念一下
很容易发现在1~n中,i的因子数是n / i
那就枚举每一个i然后加起来就OK了
#include<cstdio>
#define _for(i, a, b) for(int i = (a); i <= (b); i++)
using namespace std;
int main()
{
int n;
scanf("%d", &n);
long long ans = 0;
_for(i, 1, n) ans += n / i;
printf("%lld\n", ans);
return 0;
}
不过好像还有更快的做法
因为很多n/i答案是一样的
所以可以把这些都加起来。
下列除法都是下取整
如果 n / i + 1 = n / j
则 j = n / (n / i)
这个结论非常有用!!!!
#include<cstdio>
#define _for(i, a, b) for(int i = (a); i <= (b); i++)
using namespace std;
int main()
{
int n;
scanf("%d", &n);
long long ans = 0;
_for(i, 1, n)
{
int j = n / (n / i);
ans += (j - i + 1) * (n / i);
i = j;
}
printf("%lld\n", ans);
return 0;
}
最新文章
- 如何做优化,UITabelView才能更加顺滑 (转载)
- Mysql数据库读写分离配置
- 使用eclipse与jLink V8调试exynos 4412 u-boot
- 关于join算法的四篇文章
- Asp.net Mvc 自定义Session (一),
- 【转】.NET 三层架构 中 DAL+IDAL+Model+BLL+Web
- jQuery解析JSON的问题
- QDialog 添加最大化、最小化按钮和关闭按钮,并且要正常显示
- 移动APP测试方法总结
- @ResponseBody ResponseEntity
- js添加的元素无法触发click事件
- 学习DRF之前
- Java代码一行一行读取txt的内容
- LeetCode(8):字符串转整数(atoi)
- 学习笔记30—Windows那些事
- Codeforces 958C3 - Encryption (hard)
- BZOJ4033或洛谷3177 [HAOI2015]树上染色
- PyTorch保存模型与加载模型+Finetune预训练模型使用
- android开发(33) 让 actionbar 透明2
- Jsp&;Servlet入门级项目全程实录第3讲