UVA 1363 Joseph's Problem
Posted 日拱一卒 功不唐捐
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UVA 1363 Joseph's Problem相关的知识,希望对你有一定的参考价值。
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); } }
以上是关于UVA 1363 Joseph's Problem的主要内容,如果未能解决你的问题,请参考以下文章
UVA 1363 Joseph's Problem 找规律+推导 给定n,k;求k%[1,n]的和。