Plóya定理 的应用
2010-10-25 11:41
281 查看
问题:对于一个n的正方形连成环,用m种颜色染色,可得到多少种不重复的不同的图像?经过旋转可以重合的染色方案视为一种。
1.对于有c种颜色,s个珠子的旋转为重复的种类一共有ans种。
算法代码如下:
2.对于要考虑翻转与旋转的那么分析如下:
翻转 (这个要分奇偶)
奇数:
只能对称轴穿过某颗珠子,循环个数为(n+1)/2,共有n个这样的循环群;
偶数:
对称轴过两个珠子,循环个数(n+2)/2,共有n/2个这样的循环群;
对称轴过两个相邻珠子的,循环个数n/2,共有n/2个这样的循环群。
对于有c种颜色,s个珠子的翻转为重复的种类一共有ans种。
综合考虑如下:
对于c种颜色,s种珠子,要考虑旋转与翻转的情况如下,有ans种方案(AC代码如下)
http://poj.org/problem?id=2409
1.对于有c种颜色,s个珠子的旋转为重复的种类一共有ans种。
算法代码如下:
for(i=1;i<=s;i++) { ans+=(__int64)(pow((double)c,(int)gcd(s,i))); } printf("旋转:%I64d ",ans/s);
2.对于要考虑翻转与旋转的那么分析如下:
翻转 (这个要分奇偶)
奇数:
只能对称轴穿过某颗珠子,循环个数为(n+1)/2,共有n个这样的循环群;
偶数:
对称轴过两个珠子,循环个数(n+2)/2,共有n/2个这样的循环群;
对称轴过两个相邻珠子的,循环个数n/2,共有n/2个这样的循环群。
对于有c种颜色,s个珠子的翻转为重复的种类一共有ans种。
if(s&1) //为奇数时 { ans+=(__int64)(pow((double)c,(int)(s+1)/2)*s); } else //为偶数时 { ans+=(__int64)(pow((double)c,(int)s/2)*(s/2)) ans+=(__int64)(pow((double)c,(int)(s+2)/2)*(s/2)); } printf("翻转:%I64d ",ans/2);
综合考虑如下:
对于c种颜色,s种珠子,要考虑旋转与翻转的情况如下,有ans种方案(AC代码如下)
http://poj.org/problem?id=2409
//Plóya定理的应用,要记得考虑是否要考虑旋转或者翻转等问题 #include<stdio.h> #include<math.h> int gcd(int a,int b) { if(b==0) return a; else return gcd(b,a%b); } int main() { // freopen("in.txt","r",stdin); int c, s, i; __int64 ans,t; while(scanf("%d%d",&c,&s)) { if(c==0 && s==0) break; ans = 0; for(i=1; i<=s; i++)//考虑旋转的情况 { ans += (__int64)pow(double(c),(int)gcd(s,i)); } //printf("旋转的情况:%d/n",ans/s); // t=ans; //考虑翻转的情况 if(s&1)//珠子数为奇数 { ans += (__int64)pow(double(c),(int)((s+1)/2))*s; } else { ans += (__int64)pow(double(c),(int)(s/2))*(s/2); ans += (__int64)pow(double(c),(int)((s+2)/2))*(s/2); } printf("%I64d/n",ans/(s*2)); } return 0; }
相关文章推荐
- Plóya定理
- POJ 1659 Frogs' Neighborhood havel度序列定理的应用
- hdu 6158 The Designer && 计蒜客 Finding the Radius for an Inserted Circle 笛卡尔定理应用
- <转>贝叶斯推断及其互联网应用(一):定理简介
- POJ2154(Pólya定理与欧拉函数优化)
- Plóya定理
- O'Stolz定理的应用
- POJ2154(Pólya定理与欧拉函数优化)
- pku 2954 Triangle && pku 1265 Area Pick定理的应用 + 叉积求多边形面积
- 兴趣学习: 余弦定理的应用&nb…
- Nullable<>基础应用
- 学习笔记1--Android应用&Android studio项目结构
- [原]找出数组中出现奇数次的元素<异或的应用>
- 深度优先搜索应用_深度优先生成树&&割点判断
- java并发包在hbase&hadoop中的应用
- && 、||短路原理的应用 与操作符的优先级
- (礼拜一log)后台&前端联调:.tld应用
- Android 开源框架Glide应用(二)_占位&动画&Gif
- poj 3146 Interesting Yang Hui Triangle(lucas定理的应用)
- .NET下文本相似度算法余弦定理和SimHash浅析及应用