k/(k/t)
有没有可能被优化成 t
啊?这题我想试试,开了 O2 竟然 A 了。
整个代码
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
LL n,k,res;
inline const LL _min(const LL &a,const LL &b){
return a<b?a:b;
}
signed main(){
scanf("%d %d",&n,&k);
res=n*k;
for(int l=1,r;l<=n;l=r+1){
r=(k/l)==0?n:_min(k/(k/l),n);
res-=(k/l)*(r-l+1)*(l+r)>>1;
}
printf("%lld",res);
return 0;
}
所以这样写到底安全不安全?