• POJ 2409 Let it Bead(Polya定理)


    点我看题目

    题意 :给你c种颜色的n个珠子,问你可以组成多少种形式。

    思路 :polya定理的应用,与1286差不多一样,代码一改就可以交。。。。POJ 1286题解

    #include <stdio.h>
    #include <iostream>
    #include <string.h>
    #include <math.h>
    #include <algorithm>
    
    using namespace std;
    
    int gcd(int a,int b)
    {
        return b > 0 ? gcd(b,a%b) : a ;
    }
    int main()
    {
        int c,s ;
        while (scanf("%d %d", &c, &s) != EOF)
        {
            if(c == 0 && s == 0) break ;
            int sum = 0;
            for (int i = 1; i <= s; i++)
                sum += pow(c, gcd(i, s));
            if (s & 1)
                sum += s * pow(c, s / 2 + 1);
            else
                sum += s / 2 * pow(c, s / 2) + s / 2 * pow(c, s / 2 + 1);
            sum /= s * 2;
            printf("%d
    ", sum);
        }
        return 0;
    }
    View Code
  • 相关阅读:
    字符串
    完全背包
    背包2
    0-1背包
    生日劲歌会
    设计照明系统
    宝岛探险
    汉诺塔问题
    并查集 黑帮危机
    数塔问题
  • 原文地址:https://www.cnblogs.com/luyingfeng/p/3562547.html
Copyright © 2020-2023  润新知