求助!仔细地看了一遍题解审核标准后还是不知道哪里排版错误了,请大佬指点,谢谢
  • 板块灌水区
  • 楼主银河AI
  • 当前回复38
  • 已保存回复38
  • 发布时间2021/2/28 17:06
  • 上次更新2023/11/5 02:35:15
查看原帖
求助!仔细地看了一遍题解审核标准后还是不知道哪里排版错误了,请大佬指点,谢谢
209808
银河AI楼主2021/2/28 17:06

请不要在意是哪篇题解,反正就是未按规定排版

(大佬们喷轻点)

题解如下:

提醒,双倍经验

此题与P2261 [CQOI2007]余数求和,完全一样,可尝试用本题代码去提交此题代码

解题思路(进入正题)

打过高精取模的都知道

i=1nk%i=nki=1niki\sum_{i=1}^n k\%i = n*k- \sum_{i=1}^n i*\left \lfloor \frac{k}{i} \right \rfloor

然后用分块解决就好了。

注意本组有多组数据。

然后代码就很简单了。

AC代码

#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll n,k,ans;
int main(){
    while(~scanf("%lld%lld",&n,&k)){
	    ans=n*k;
	    for(ll l=1,r=0;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\n",ans);
	}
}
2021/2/28 17:06
加载中...