首页 > 其他 > 详细

POJ 2409 Let it Bead(Polya定理)

时间:2014-02-24 21:56:41      阅读:387      评论:0      收藏:0      [点我收藏+]

点我看题目

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

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

bubuko.com,布布扣
bubuko.com,布布扣
#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\n", sum);
    }
    return 0;
}
View Code
bubuko.com,布布扣

POJ 2409 Let it Bead(Polya定理)

原文:http://www.cnblogs.com/luyingfeng/p/3562547.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!