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为最...

Code HDU 5212(容斥原理)

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

hdoj 5212 Code 【数学+思维】

题目链接:hdoj 5212 Code Code Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Ja...

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 5375 Gray code(格雷码 找到入手点是关键所在)

HDU 5375 Gray code(格雷码 找到入手点是关键所在)

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’,补...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:hdu 5212 Code
举报原因:
原因补充:

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