标签:i+1 eof ace print == nbsp 数列 problem style
https://vjudge.net/problem/UVA-1363
n
题意:求 Σ k%i
i=1
除法分块
如果 k/i==k/(i+1)=p
那么 k%(i+1)=k-(i+1)*p= k-i*p-p = k%i-p
所以 商相同时,余数为等差数列
我不知道为什么交到vjudge一直WA,网上搜的题解交上去也WA
#include<cmath> #include<cstdio> using namespace std; int main() { int n,k,i,j,p,s,t; long long ans; while(scanf("%d%d",&n,&k)!=EOF) { ans=0; p=k; i=1; while(i<=n) { if(!p) { ans+=1ll*k*(n-i+1); break; } j=k/p; s=k%i; t=k%j; ans+=1ll*(s+t)*(j-i+1)/2; i=j+1; p=k/i; } printf("%lld\n",ans); } }
标签:i+1 eof ace print == nbsp 数列 problem style
原文地址:http://www.cnblogs.com/TheRoadToTheGold/p/7397709.html