zoukankan      html  css  js  c++  java
  • URAL 1055 Combinations

    URAL_1055

        将组合数展开后的每个数依次分解素因子,最后再统计一下有多少种素因子就可以了。

    #include<stdio.h>
    #include<string.h>
    #define MAXD 1010
    #define MAXN 50010
    int N, M, isprime[MAXD], prime[MAXD], P, h[MAXN];
    void prepare()
    {
        int i, j;
        P = 0;
        memset(isprime, -1, sizeof(isprime));
        for(i = 2; i <= 1000; i ++)
            if(isprime[i])
            {
                prime[P ++] = i;
                for(j = i * i; j <= 1000; j += i)
                    isprime[j] = 0;
            }
    }
    void deal(int n, int d)
    {
        int i;;
        for(i = 0; prime[i] * prime[i] <= n; i ++)
            while(n % prime[i] == 0)
                h[prime[i]] += d, n /= prime[i];
        h[n] += d;
    }
    void solve()
    {
        int i, ans = 0;
        memset(h, 0, sizeof(h));
        for(i = N - M + 1; i <= N; i ++)
            deal(i, 1);
        for(i = 1; i <= M; i ++)
            deal(i, -1);
        for(i = 2; i <= N; i ++)
            if(h[i])
                ++ ans;
        printf("%d\n", ans);
    }
    int main()
    {
        prepare();
        while(scanf("%d%d", &N, &M) == 2)
        {
            solve();
        }
        return 0;
    }
  • 相关阅读:
    wifi应用领域
    wifi主要功能
    Wi-Fi技术原理
    自适应通信类型与基本原理
    自适应通信发展背景
    自适应通信
    无线通信技术
    无线通信的一些专业术语
    无线通信
    Bluetooth vs. Wi-Fi(IEEE 802.11)
  • 原文地址:https://www.cnblogs.com/staginner/p/2487443.html
Copyright © 2011-2022 走看看