UVa 11526 H(n) (数论)
2013-10-19 21:39
357 查看
11526-H(n)
Timelimit:5.000secondsWhatisthevaluethissimpleC++functionwillreturn?
longlongH(intn){
longlongres=0;
for(inti=1;i<=n;i=i+1){
res=(res+n/i);
}
returnres;
}
Input
ThefirstlineofinputisanintegerT(T<=1000)thatindicatesthenumberoftestcases.EachofthenextTlinewillcontainasinglesigned32bitintegern.
Output
Foreachtestcase,outputwillbeasinglelinecontainingH(n).
SampleInputOutputforSampleInput
2 5 10 | 10 27 |
n太大,硬算肯定不行,我们先观察一个例子,看能否得出一些结论。
当n=20时,和式展开为
20+10+6+5+4+3+2+2+2+2+1+1+1+1+1+1+1+1+1+1
注意到后面相同的数太多,不妨化简下:
20+10+6+5+1*(20-10)+2*(10-6)+3*(6-5)+4*(5-4)
=(20+10+6+5)+(20+10+6+5)-4*4
=2(20+10+6+5)-4*4
也许,我们可以
这样,复杂度就从O(n)降为O(√n)了。
完整代码:
#include<cstdio>
#include<cmath>
typedeflonglongll;
inlinellans(lln)
{
llr=0,m=sqrt(n),i;
for(i=1;i<=m;++i)r+=n/i;
return(r<<1)-m*m;
}
intmain()
{
intt;
lln;
scanf("%d",&t);
while(t--)
{
scanf("%lld",&n);
printf("%lld\n",ans(n));
}
return0;
}
转载请注明:
相关文章推荐
- 【数论,找规律】Uva 11526 - H(n)
- 【数论】UVa 11526 - H(n)
- UVA-11526H(n)(数论)
- uva 11526 H(n) (数论)
- UVa 1642 Magical GCD (暴力+数论)
- UVa 524 Prime Ring Problem (数论&DFS)
- Disgruntled Judge UVA - 12169 (数论 之 扩展欧几里得+模运算)
- UVa 10929 You can say 11 (数论)
- uva 10168 Summation of Four Primes(数论-哥德巴赫猜想)
- 【数论】Irrelevant Elements, ACM/ICPC NEERC 2004, UVa1635 【组合数学】
- UVA-10061 How many zero's and how many digits ? (数论)
- UVA 题目1521 GCD Guessing Game(数论+贪心)
- UVA 568 - Just the Facts(数论)
- uva 12050 - Palindrome Numbers(数论)
- UVA 138 - Street Numbers (数论)
- UVA 11461 - Square Numbers(数论)
- UVA 1426 - Discrete Square Roots(数论)
- 数论基础1011 UVA 11754 剩余定理+枚举
- UVA 11526(p344)----H(n)
- UVA 10555 - Dead Fraction(数论+无限循环小数)