当前位置: 首页 > news >正文

P14813 [CCPC 2024 哈尔滨站] 奇怪的上取整 个人题解

题目链接

题目大意

给了你一个函数 \(f(a,b)\),让你求 \(\sum_{i=1}^a f(a,i)\) 的值。

Solution

首先我们来看 \(f(a,b)\) 到底是求得啥,其实把伪代码翻译成过来其实就是让 \(b\) 一直递减,直至减到能被 \(a\) 整除,返回 \(a/b\) 的值。

能被 \(a\) 整除的肯定是 \(a\) 的约数了,所以 \(f(a,b)\) 返回的值其实就是 \(a\) 除以 \(\le b\) 的最大约数的值。题目让我们求 \(\sum_{i=1}^a f(a,i)\),我们可以发现,\(a\) 的一个约数到另一个约数之间的 \(f(a,i)\) 的值都是 \(a\) 除以前一个约数的值,然后我们就发现 \(a\) 的每一个约数间隔中 \(f(a,i)\) 的加和其实就是这段间隔的距离乘上 \(a\) 除以这段间隔前面的那一个约数。

然后我们可以先把 \(a\) 的约数处理出来,然后把每段间隔的贡献加起来。比如样例中 \(a=114514\) 的情况(图画得有点丑,请见谅):图中每条线代表着每个间隔与其对应的 \(a\) 除这段间隔前一个约数的值相乘,但是我们发现与样例结果少 \(1\),那是因为这张图中只把间隔算了进去,相当于是算了 \(a-1\) 个数,最后一个当 \(i=a\) 的情况没算,而 \(i=a\) 时正好是自己除以自己,所以结果应该 \(+1\)

代码

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e6+5;
inline int read(){int x=0,f=1;char c=getchar();while(c<'0' || c>'9'){if(c=='-')f=-1;c=getchar();}while(c>='0' && c<='9'){x=x*10+c-'0';c=getchar();}return x*f;
}
int T=read(),f[N];
signed main(){while(T--){int n=read(),ans=0,cnt=0;for(int i=1;i*i<=n;i++){//处理约数 if(n%i==0){f[++cnt]=i;if(i!=n/i)f[++cnt]=n/i;}}sort(f+1,f+cnt+1);//这里要排个序,因为上边找约数时是对半找的 for(int i=2,j=cnt;i<=cnt,j>=2;i++,j--)ans+=(f[i]-f[i-1])*f[j];//统计每一段间隔内的答案 ans++;printf("%lld\n",ans);}return 0;
}
http://www.gsyq.cn/news/127570.html

相关文章:

  • 深圳到长沙株洲湘潭衡阳邵阳岳阳常德张家界搬家公司搬家物流推荐!跨省搬家排行榜 - 物流人
  • UVa 12018 Juice Extractor
  • AI Agent在企业数字化转型中的关键角色与实施策略
  • 大模型岗位全解析:从预训练到应用开发,5大梯队深度指南+2026转型攻略
  • 【扣子编程】| 2000字实操指南(Coze最新上线)
  • 提示词工程精华总结:掌握ICIO框架与五大核心要素,AI应用效率翻倍,建议收藏!
  • SpringBoot勤工助学信息管理高效的平台|1125(领完整源码)可做计算机毕业设计JAVA、PHP、爬虫、APP、小程序、C#、C++、python、数据可视化、全套文案
  • 网络传输原理(TCP/IP)
  • AWS For Fluent Bit:高效日志收集与传输的Docker镜像
  • Collections.unmodifiableSet()
  • 一文彻底搞懂AI Agent:从概念到两种核心设计模式(图文详解)
  • 杭州到重庆、成都、昆明、贵阳、遵义、绵阳、宜宾、德阳搬家公司物流排行榜!搬家费用明细! - 物流人
  • Visual Studio 2026 开发 MAUI app 记录
  • LDR6500取电方案强势进入XM供应链
  • 影刀RPA实战:3步搞定希音客户行为数据提取,效率飙升[特殊字符]
  • CTF中Web题目的常见题型及解题姿势,零基础入门到精通,收藏这篇就够了
  • 还在手动处理跨境物流?RPA智能处理希音订单,效率暴增30倍![特殊字符]
  • CTF大揭秘:从DEF_CON到全民热潮的极客游戏
  • 北京到武汉、郑州、济南、长沙、西安、南宁、乌鲁木齐、兰州搬家公司专业排行榜!搬家费用明细! - 物流人
  • 北京到大连、沈阳、鄂尔多斯、包头、呼和浩特、长春、哈尔滨、大庆搬家公司可信赖度排行榜!搬家费用明细! - 物流人
  • python手写数字识别系统 CNN卷积神经网络算法 深度学习、pytorch 手写数字识别(建议收藏)✅ - 指南
  • MySQL禁止3表以上JOIN的原因详解
  • 黑盒测试方法:原理、技术与实践演进
  • PySpark实战 - 2.2 利用Spark SQL计算总分与平均分
  • 震惊!这家云服务器代理商竟让企业口碑飙升,背后真相揭秘!
  • 连续时间下的概率预测
  • 第七届全球校园人工智能算法精英大赛-算法巅峰赛产业命题赛第一赛季优化题--无人机配送
  • 比特彗星(BitComet) v2.19解锁全功能豪华版
  • 20个渗透CTF练习平台资源(2025)
  • 并发测试中的五大常见陷阱与破解之道