标签:
原谅我这么傻逼的题都不会做……
或许写成数学公式的形式比较容易想到解法?
$$ans=\sum_{i=1}^n \sum_{d|i} 1$$
……是不是感觉很水呀……是吧……改成先枚举d再枚举 i 看看……
$$ans=\sum_{d=1}^n \sum_{d|i} 1=\sum_{d=1}^n \lfloor\frac{n}{d}\rfloor$$
果然我是个傻逼……
1 /************************************************************** 2 Problem: 1968 3 User: Tunix 4 Language: C++ 5 Result: Accepted 6 Time:32 ms 7 Memory:804 kb 8 ****************************************************************/ 9 10 #include<cstdio> 11 int main(){ 12 int n,ans=0; 13 scanf("%d",&n); 14 for(int i=1;i<=n;i++) ans=ans+n/i; 15 printf("%d\n",ans); 16 return 0; 17 } 18
【BZOJ】【1968】【AHOI2005】COMMON 约数研究
标签:
原文地址:http://www.cnblogs.com/Tunix/p/4557536.html