【Burnside引理】【Polya定理】Arif in Dhaka

原创 2013年12月02日 19:46:40

Problem L

Arif in Dhaka (First LovePart 2)

Input: standard input

Output: standard output

Time Limit: 2 seconds

 

Our hero Arif is now in Dhaka (Lookat problem 10244– First Love if you want to know more about Arif, but thatinformation is not necessary for this problem. In short, Arif is a brilliantprogrammer working atIBM) and he islooking for his first love. Days pass by but his destiny theory is not workinganymore, which means that he is yet to meet his first love. He then decides toroam around Dhaka on arickshaw(A slow vehicle pulled by human power), running DFS (by physical movement) and BFS(with his eyes) on every corner of the street and market places to increase hisprobability of reaching his goal. While roaming around Dhaka he discovers an interestingnecklace shop. There he finds someinteresting necklace/braceletconstruction sets. He decides to buy some of them, but his programmer mindstarts looking for other problems. He wants to find out how many differentnecklace/bracelet can be made with acertain construction set. You are requested to help him again. The followingthings are true for anecklace/braceletconstruction set.

 

a)      All necklace/braceletconstruction sets has a frame, which hasNslots to place N beads.

b)      All the slots must be filled to make a necklace/bracelet.

c)      There are t types of beads in a set. Nbeads of each type are there in the box. So the total number of beads istN (t multiplied by N), ofwhich exactlyN can be used at atime.

 


Fig: Different types ofnecklace for t=2 and different value of N

 

The figure above shows necklaces for some different values of N (Here,t is always 2). Nowlet’s turn out attentions tobracelets.A bracelet is a necklacethat can be turned over (A junior programmer in Bangladesh says that wristwatch is anecklace (Boys!!! Don’tmind :-))). So for a bracelet thefollowing two arrangements are equivalent. Similarly, all other oppositeorientation or mirror images are equivalent.

 

 

So, given the description of a necklace/braceletconstruction set you will have to determine how many different necklace andbracelet can be formed with made with that set 

 

Input

The input file contains severallines of input. Each line contains two positive integersN(0<N<51)and t(0<t<11) as described inthe problem statement. Also note that within this input range inputs will besuch that no final result will exceed11digits. Input is terminated by end of file.  

 

Output

For each line of input produceone line of output which contains two round numbersNN and NB separated by asingle space, where NN is the numberof total possible necklaces and NBis the number of total possible bracelets for the corresponding input set. 

 

Sample Input

5 2

5 3

5 4

5 5

 

SampleOutput

8 8

51 39

208 136

629 377

有两种置换:旋转和翻转

讨论旋转:n为奇数或偶数是一样的。

而旋转(把本来的看作旋转次数为0)可以是1个间隔,2个间隔......n-1个间隔。即有n种置换(暂讨论旋转)。

假设某个置换,每个珠子旋转i个间隔,可以证明,这个置换中每个循环包含n/gcd(i,n)个元素,因此,这个置换有gcd(i,n)个循环。

不动点的总数为Σ(i=0,n-1) (k^(gcd(i,n)))。(暂讨论旋转)



讨论翻转:

当n为奇数,只有穿过一个点和另一条边的中点的对称轴。一共有n条,即有n种置换。

对于每种置换,都有(n-1)/2个两个元素的循环和一个1个元素的循环,共(n+1)/2个循环。不动点数为n*k^((n+1)/2)


当n为偶数,有穿过两个点的对称轴和不穿过点的对称轴。

前者:n/2种置换。每种置换n/2+1个循环。不动点数为n/2*t^(n/2+1)

后者:n/2种置换。每种置换n/2个循环。不动点数为n/2*t^(n/2)


根据Burnside引理,求一下平均值即为答案。


#include <cstdio>
#include <iostream>
using std::cin;
using std::cout;

typedef long long ll;
ll power[27];

int gcd(int a,int b)
{
	//cout << "gcd(" << a << "," << b << ")=";
	while (b)
	{
		int t = b;
		b = a%b;
		a = t;
	}
	//cout << a << '\n';
	return a;
}

int main()
{
	freopen("10294.in","r",stdin);
	freopen("10294.out","w",stdout);

	int n,t;
	while (scanf("%d%d",&n,&t)!=EOF)
	{
		power[0] = 1;
		for (int i=1;i<=n;i++)
			power[i] = power[i-1] * t;

		ll a = 0;
		ll b = 0;
		for (int i=0;i<n;i++)
		{
			a += power[gcd(i,n)];
		}
		if (n & 1)
		{
			b = n * power[(n+1)>>1];
		}
		else
		{
			b = n/2*power[n/2+1] + n/2*power[n/2];
		}

		cout << a/n << " " << (a+b)/2/n << "\n";
	}
	return 0;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

UVA 10294 Arif in Dhaka (First Love Part 2) polya定理

#include #include using namespace std; #define LL long long LL n,t; double p,q; LL gcd(LL a,LL b) ...

Burnside引理与Polya定理

Burnside引理与Polya定理Burnside引理与Polya定理是有关组合数学的两条十分重要的定理(引理),但是网上的一些资料大多晦涩难懂或者与实际并不相关联,因此在这里做一些浅显的解读,希望...

Burnside引理与Polya定理

1.置换。 大概学过抽象代数的同学都知道这个概念吧。 置换简单来说就是对元素进行重排列,如下图所示。置换是[1,n][1,n]到[1,n][1,n]的一一映射。 再比如,将正方形绕其中心逆时...

UVA 10294 Arif in Dhaka (置换polya)

【题目链接】:click here~~ 【题目大意】: 给你一串珠子(连接成了一个环),共有n个珠子组成,你有t种颜色,现在你来给这个珠子染色,问染成项链有多少种方法?染成手镯有多少种方法?在项链里,...

Burnside引理和Polya定理 & [bzoj 1004] [HNOI2008]Cards:Burnside引理,动态规划

题意:有Sr张红色牌、Sg张绿色牌和Sb张蓝色牌,m种洗牌法(置换),两种牌相同当且仅当一种能洗成另一种,保证洗牌法满足封闭性、存在逆元,问有多少种染色方案。 Burnside引理和Polya用于解决...

Polya定理,Burnside引理

设G是一个集合,*是G上的二元运算,如果(G,*)满足下面的条件: 封闭性:对于任何a,b∈G,有a*b∈G; 结合律:对任何a,b,c∈G有(a*b)*c=a*(b*c); 单位元...

uva10294 Arif in Dhaka (First Love Part 2)

polya定理

Uva 10294 Arif in Dhaka (First Love Part 2)

PRO 题目大意:  n 个珠子组成的 项链,t 种颜色去染, 问有多少本质不同的项链; 经旋转,翻转一样的视为同一种项链。 就是一个简单的polya组合计数的应用, ...

Uva10294 Arif in Dhaka (置换问题)

继续刘汝佳大白之旅,这次shi

uva10294 Arif in Dhaka(置换的等价类计数)

【题解】 置换群,等价类计数问题  分别考虑旋转和翻转的情况,并计算等价类的个数sum1,sum2: 1.旋转:   置换有n种:不旋转(转0位),转1位,…,转n-1位,若转i位,则...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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