取模 数论分块

取模

https://ac.nowcoder.com/acm/contest/30532/K



思路:首先化简一下该式子,原式=sum(n-n/i*i) = n*n-sum(n/i*i);
由数论分块可知,对于n/i而言,在0-n内一定存在一块连续的区间 l - r 在这段区间内 n/i 的值是相同的,
那么在这段区间内sum(n/i*i) = n/i * sum(i);就相当于求 l - r 的区间和 即(r + l) * (r - l + 1) / 2;
因此问题就变成了求每一段区间 l 和 r; 而每一段的 l 等于上一段的 r + 1,r = n / ( n / l);



全部评论

相关推荐

程序员牛肉:主要是因为小厂的资金本来就很吃紧,所以更喜欢有实习经历的同学。来了就能上手。 而大厂因为钱多,实习生一天三四百的就不算事。所以愿意培养你,在面试的时候也就不在乎你有没有实习(除非是同级别大厂的实习。) 按照你的简历来看,同质化太严重了。项目也很烂大街。 要么换项目,要么考研。 你现在选择工作的话,前景不是很好了。
点赞 评论 收藏
分享
叶扰云倾:进度更新,现在阿里云面完3面了,感觉3面答得还行,基本都答上了,自己熟悉的地方也说的比较细致,但感觉面试官有点心不在焉不知道是不是不想要我了,求阿里收留,我直接秒到岗当阿里孝子,学校那边的房子都退租了,下学期都不回学校,全职猛猛实习半年。这种条件还不诱人吗难道 然后现在约到了字节的一面和淘天的复活赛,外加猿辅导。华为笔试完没动静。 美团那边之前投了个base广州的,把我流程卡麻了,应该是不怎么招人,我直接简历挂了,现在进了一个正常的后端流程,还在筛选,不知道还有没有hc。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务