摘要: hdu 4676http://acm.hdu.edu.cn/showproblem.php?pid=4676题意:给你1..n的排列,给一个区间[L,R],返回gcd(a[i],a[j]) L<=i<j<=R的和;分析:对于一个区间[L,R],我们设g(d) 表示在区间内gcd(a[i],a[j]) = d的个数 ;f(d) 表示在区间内gcd(a[i],a[j]) = d的倍数的个数;显然 f(d) = sigma{ d | n, g(n) };通过莫比乌斯反演得到 g(d) = sigma{ d | n, mu(n/d) * f(n) };其中mu()是莫比乌斯函数;g( 阅读全文
posted @ 2013-10-02 22:36 Rabbit_hair 阅读(1564) 评论(0) 推荐(1) 编辑