polya

Polya定理 Burnside引理、Polya定理及其应用 阅读详情

1/|G| {m^c(a1)+m^c(a2)+m^c(a3)+...+m^c(ag)}

其中c(ai)为置换ai的循环节数(i = 1,2,...g)。

m种颜色的珠子,每种颜色珠子个数不限,将这些珠子做成长度为n的项链,问能做成多少种不重复的项链。两条项链相同,当且仅当两条项链通过旋转或者翻转后能重合在一起,且对应珠子的颜色相同。

(1)旋转:将项链顺时针旋转i格后,其循环节数为gcd(n,i);

(2)翻转:

1.当n为奇数时,共有n个循环节数为(n+1)/2的循环群。

2.当n为偶数时,共有n/2个循环节数为(n+2)/2的循环群,和n/2个循环节数为n/2的循环群。

poj 1286 Necklace of Beads

#include <iostream>
#include <algorithm>
#include <string.h>
#include <stdio.h>
#include <math.h>
#include <queue>
#include <stack>
#include <map>
#include <set>
#include <vector>
#define LL long long
using namespace std;

int main(){
    int n;
    while(scanf("%d",&n),n!=-1){
        if(n <= 0){
            printf("0\n");continue;
        }
        LL sum = 0;
        for(int i = 1; i <= n; ++i){
            int d = __gcd(n,i);
            sum += (LL)pow(3.0,d*1.0);
        }
        if(n&1){
            sum += (LL)(n*pow(3.0,(n+1)/2.0));
        }
        else{
            sum += (LL)((n/2)*pow(3.0,(n+2)/2.0));
            sum += (LL)((n/2)*pow(3.0,(n/2.0)));
        }
        sum /= (LL)(2*n);
        printf("%lld\n",sum);
    }    
    return 0;
}

poj 2409 Let it Bead

#include <iostream>
#include <algorithm>
#include <string.h>
#include <stdio.h>
#include <math.h>
#include <queue>
#include <stack>
#include <map>
#include <set>
#include <vector>
#define LL long long
using namespace std;

int main(){
    int n,m;
    while(scanf("%d%d",&m,&n),n|m){
        
        LL sum = 0;
        for(int i = 1; i <= n; ++i){
            int d = __gcd(n,i);
            sum += (LL)pow(m*1.0,d*1.0);
        }
        if(n&1){
            sum += (LL)(n*pow(m*1.0,(n+1)/2.0));
        }
        else{
            sum += (LL)((n/2)*pow(m*1.0,(n+2)/2.0));
            sum += (LL)((n/2)*pow(m*1.0,(n/2.0)));
        }
        sum /= (LL)(2*n);
        printf("%lld\n",sum);
    }    
    return 0;
}


Polya计数 零. 前言复习【BZOJ】1004,发现Burnside引理和Polya定理忘记了,就再回顾一遍。一篇很好的东西:Polya定理,Burnside引理 再来一个百度的:burnside引理 还有一个PPT:Burnside引理,Polya定理本文就是参考了上文,再加入自己的理解。一. 置换群1. 群设GG是一个集合,∗*是GG上的二元运算,若(G,∗)(G,*)满足下面的条件: ①封闭性:∀a 阅读详情

相关推荐

Burnside引理与Polya定理

Burnside引理与Polya定理Burnside引理与Polya定理是有关组合数学的两条十分重要的定理(引理),但是网上的一些资料大多晦涩难懂或者与实际并不相关联,因此在这里做一些浅显的解读,希望通过此文章可以让这两条定理(引理)能够发挥其作用。PS:引理与定理的区别:Ψ引理是数学中为了取得某个更好的定理而作为步骤被证明的命题,其意义并不在于自身被证明,而在于为达成最终定理作出贡献. Ψ一个引

This is Mendez. 4216

C++栈与堆内存分配实战:从原理到性能优化的选择策略

内存管理是编程语言的核心基础,它决定了程序如何组织和访问数据。其原理基于计算机系统中不同的存储区域,如栈和堆,它们具有截然不同的分配机制与生命周期管理方式。这项技术的价值在于直接影响程序的性能、安全性与资源利用率,是构建高效可靠软件系统的基石。在应用场景上,栈分配因其速度快、自动管理的特点,适用于临时变量、小型数据结构和RAII资源管理;而堆分配则提供了灵活的生命周期与动态大小,常用于运行时确定大小的数据结构、需要跨作用域存活的对象以及实现多态。本文聚焦于C++中的**栈分配**与**堆分配**策略,通过对

aodanchui1057的博客 453

Polya计数法浅析&caioj1475【Polya计数法】项链上的珠子

Polya计数法 最近学习了一个很高深的算法QAQ,它就是polya计数法那么我们就来学习一下这个算法吧~~~请先看下面这道例题: 【例题】 对2*2的方阵用黑白两种颜色涂色,问能得到多少种不同的图像?经过旋转使之吻合的两种方案,算是同一种方案。 【问题分析】 由于该问题规模很小,我们可以先把所有的涂色方案列举出来。 一个2*2的方阵的旋转方法一共有4种:旋转0度、旋

LJH_KOQI的博客 1398

POJ 2409-Let it Bead(Polya定理-旋转+翻转 串项链)

Let it Bead Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 5895   Accepted: 3950 Description "Let it Bead" company is located upstairs at 700 Cannery Row in

Some. 1044

polya计数学习小结

最近半个月以来一直在看《组合数学》,马马虎虎也算翻完了,理解的也很浅,接下来的一个月中,我将把主要精力放在做数学题上同时巩固总结这一 个月以来所学的数论组合数学知识。那就先从Polya计数法开始吧。 Burnside定理: 首先介绍一下有关置换群的一些知识。 置换: 设

xiaohuan1991的专栏 8491

Polya入门

转载请注明出处,谢谢 http://blog.youkuaiyun.com/ACM_cxlove?viewmode=contents           by---cxlove 半年前便有研究过Polya,无奈当时只是浮在表面。 重新拿起组合数学书,仔细研究了一番。 对于每一种染色,都有一个等价群,例如旋转,翻转等。我们将每一种变换转换成一个置换群,通过置换群得到的都是等价的染色方案 最终我们要求

窝不是爱酱,喵~~~~ 3562

Polya定理及例题

概念 先讲Burnside定理: 百度百科的传送门:https://baike.baidu.com/item/burnside%E5%BC%95%E7%90%86/1505996  再放一个例题:    重点还是Polya定理 百度百科的传送门:https://baike.baidu.com/item/Polya/11020869 Polya定理在Burnside定...

OneLine_的博客 8674

polya计数定理

Burnside引理:记C(f)为在置换f下保持不变的着色方案的个数,那么本质不同的着色方案数位所有置换f的C(f)值的平均数。 如果求给定置换C(f)的方法为“一次判断每个着色方案是否在该置换下不变”由于每个方案包含p个“格子”的颜色信息,考察每个方案的复杂度为O(p),考察所有n种着色方案的复杂度为O(np),由于有s种置换方案,因此时间复杂度为O(nsp). Polya定理:如果用k

新博客地址:sensirly.github.io 2256

Polya定理,Burnside引理

涉及到组合数学的问题,首先是群的概念: 设G是一个集合,*是G上的二元运算,如果(G,*)满足下面的条件: 封闭性:对于任何a,b∈G,有a*b∈G; 结合律:对任何a,b,c∈G有(a*b)*c=a*(b*c); 单位元:存在e∈G,使得对所有的a∈G,都有a*e=e*a=a; 逆元:对于每个元素a∈G,存在x∈G,使得a*x=x*a=e,这个时候记x为a-1,称为a的逆元,那么则称(

许增强 1万+

【组合数学】通俗解释 Burnside引理和Polya定理

文章目录Burnside引理和Polya定理Burnside引理定义:Burnside例子解释Polya定理 Burnside引理和Polya定理 对于图形来说,如果通过旋转,图像能达到其他图像的效果,这叫做本质上一样。 Burnside的目的是,我们能有多少种排列方案,求的是一个方案的数量num。 Burnside引理定义: 反正直接让我看这个定义…我是看不懂…所以还是直接上例子吧。 Burnside例子解释 所以!!!例子套用Burnside引理就是 L = (16+2+4+2)/4 =

火火的博客 3349

有一条由 N 颗珠子组成的项链,珠子有两种颜色:白色和黑色,这些珠子随意串起

有一条由 N 颗珠子组成的项链,珠子有两种颜色:白色和黑色,这些珠子随意串起。假如要在一点截断项链,将他展开成一条直线,从一端收集同色的珠子,再从另一段收集同色的珠子(颜色可能与前面收集的不同)。确定应该在哪里截断项链从而能够收集到最大数目的珠子。

Polya定理小结

转载请注明出处,谢谢 http://blog.youkuaiyun.com/ACM_cxlove?viewmode=contents           by---cxlove 最近接触了Polya计数定理,建议之前先去学习置换群。 只会皮毛,深层定理含义及证明一般书上都有。 http://poj.org/problem?id=2409 赤裸裸的Polya啊,数据范围很小,直接枚举

窝不是爱酱,喵~~~~ 8989

fdtd(时域有限差分)仿真

基础入门阶段采用 Step by step 的教学方式带着做具体的案例,在案例中学习 FDTD 应用的。的痛难点,将 FDTD 仿真引入实验当中,通过软件可视化处理有效直观的展示仿真的流程,与实验数。图像传感器,OLED 和液晶,表面计量,表面等离子体,石墨烯,太阳能电池,集成光子组件,超材。料,衍射光学和光子晶体。波,场极化,磁场,周期性结构,半球功率积分等设计解决方案,提供时域有限差分分析函数,时域。子光学传感器、热电子光探测器的光学特性研究、光学微腔宽带吸收器等多个方向的研究方法。

y2715163545的博客 5441

polya计数

polya计数 总结 问题: 同构计数 bunside定理: 在置换g下染色方案不变数的平均值;公式:\(\frac{1}{|G|}\sum_{g\in G}C(g)\), 其中\(C(g)\) 是在染色方案在置换g下保持不变的方案的数目;不证; polya定理: polya定理是对Burnside定理求\(C(g)\)的优化,注意到置换中处于同一循环的元素应该保持染色相同,...

weixin_38168590的博客 265

C# 进阶:打造WinForms中的动态交互式UserControl

本文深入探讨了如何在C# WinForms中创建动态交互式UserControl,以提升桌面应用的用户体验和代码复用性。通过剖析UserControl生命周期、事件体系,并结合一个可拖拽缩放的分割面板实战案例,详细讲解了鼠标键盘事件处理、自定义绘制、状态管理以及性能优化等核心技巧,帮助开发者封装复杂交互逻辑,打造专业级自定义控件。

weixin_29279153的博客 462

C语言 函数

一、什么是函数 二、函数的相关语法 三、函数编码规范

m0_57105760的博客 1890
上一篇: 3140 Contestants Division
下一篇: 点支配、点覆盖、点独立
嘿嘿不错
博客等级 码龄11年 10粉丝 128原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值