hdu 5212 Code

原创 2016年06月01日 22:32:46

i=1nj=1ngcd(ai,aj)×(gcd(ai,aj)1)(mod10007)

1n,ai10000

几乎是反演模板题

枚举gcd算贡献就好

具体见代码


#include<cstdio>
#include<vector>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;
#define LL long long

const int maxn = 11234;
const int mod = 10007;

vector<int> fac[maxn];
LL mu[maxn];

void init(){
    memset(mu,0,sizeof(mu));
    mu[1] = 1;
    for(int i=1;i<maxn;i++){
        for(int j=i;j<maxn;j+=i){
            fac[j].push_back(i);
            if(j!=i) mu[j] -= mu[i];
        }
    }
}

LL cnt[maxn];

int main(){
    init();
    int n;
    while(~scanf("%d",&n)){
        memset(cnt,0,sizeof(cnt));
        int x;
        while(n--){
            scanf("%d",&x);
            for(vector<int>::iterator it = fac[x].begin();it!=fac[x].end();it++){
                cnt[*it]++;
            }
        }
        LL ret = 0;
        for(int i=1;i<maxn;i++){
            LL tim = 0;
            for(int j=i;j<maxn;j+=i){
                (tim += mu[j/i]*(cnt[j]*cnt[j])) %= mod;
            }
            ret += tim * i % mod * (i-1);
            ret %= mod;
        }
        printf("%I64d\n",ret);
    }
    return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

HDU 5212 Code(容斥)

题意: 输入n个数, 求这n个数的n^2个两两组合的最大公约数x,x(x-1)之和 。 换个思路, 我们如果求出了最大公约数为x的对数cnt, 那么答案就增加x(x-1)cnt^2 那么怎么求以x为最...

BestCoder Round #39 (HDU5210,5211,5212)

题目传送:HDU - 5210 HDU - 5210 - Delete 思路:简单题 AC代码: #include #include #include #include #incl...

hdu 5212(莫比乌斯反演)

Code Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Pro...

hdu 1200 code

  • 2010-08-23 09:45
  • 325B
  • 下载

HDU AC code

  • 2009-10-02 14:23
  • 20KB
  • 下载

HDU 3461 Code Lock

HDU 3461 Code Lock题意:对于一个锁你可以用一个密码系统代替钥匙去打开它, 一个钥匙包含了一系列的齿轮 ,每一个齿轮上有a到z顺序的小写字母,如果你向上滑动齿轮,那么它的字母会是当前字...

hdu5375 Gray code(DP)

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5375 题目大意:给你一个二进制串,带’?’的位置可以由你来决定填’1’还是’0’,补...

数论+dfs+复数除法剪枝 Secret Code hdu1111

X = a0 + a1B + a2B2 + ...+ anBn. (其实是B^2。。。。这个坑人) 满足复数除法的剪枝真的是强大啊 枚举每一个ai, 然后 除复数B, 这里剪枝,判断是否可以整...

hdu5375Gray code dp

//给一个二进制码,其中有些位置有问号 //可以在问号处填0或者1 //转换后的格雷码的第i个位置如果是1,那么就得到a[i]的权值,问最大能得到多少权值 //由二进制码转换为格雷码的公式为将二进制码...
  • cq_pf
  • cq_pf
  • 2015-08-11 18:25
  • 812

HDU 5375 Gray code (简单dp)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5375 题面: Gray code Time Limit: 2000/1000 MS (J...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)