luogu P2561 [AHOI2002]黑白瓷砖(polya定理)
luogu P2561 [AHOI2002]黑白瓷砖(polya定理)
题目大意
将n(n+1)/2n(n+1)/2n(n+1)/2个六边形拼成三角形的形状,对这个三角形有顺时针旋转120度,逆时针旋转,水平反转,三种置换,现在可以对每个六边形进行染色,问有多少种不同的染色方法
题目大意
设Sn=n(n+1)2Sn=\frac{n(n+1)}{2}Sn=2n(n+1)
置换一:不进行变换:Sn{S_n}Sn个循环
置换二:不反转,顺时针旋转120度:⌈Sn3⌉\left\lceil\frac{S_n}{3}\right\rceil⌈3Sn⌉个循环
置换三:不反转,逆时针旋转120度:⌈Sn3⌉\left\lceil\frac{S_n}{3}\right\rceil⌈3Sn⌉个循环
置换四:反转,不旋转:⌈n2⌉+Sn−⌈n2⌉2\left\lceil\frac{n}{2}\right\rceil+\frac{S_n-\left\lceil\frac{n}{2}\right\rceil}{2}⌈2n⌉+2Sn−⌈2n⌉
置换五:反转,顺时针旋转120度:⌈n2⌉+Sn−⌈n2⌉2\left\lceil\frac{n}{2}\right\rceil+\frac{S_n-\left\lceil\frac{n}{2}\right\rceil}{2}⌈2n⌉+2Sn−⌈2n⌉
置换六:反转,逆时针旋转120度:⌈n2⌉+Sn−⌈n2⌉2\left\lceil\frac{n}{2}\right\rceil+\frac{S_n-\left\lceil\frac{n}{2}\right\rceil}{2}⌈2n⌉+2Sn−⌈2n⌉
AC代码
#include<bits/stdc++.h>
using namespace std;
struct BigInt{const static int mod=10000;const static int DLEN=4;int a[600],len;BigInt(){}BigInt(int v){memset(a,0,sizeof(a));len=0;do{a[len++]=v%mod;v/=mod;}while(v);}BigInt operator +(const BigInt &b)const{BigInt res;res.len=max(len,b.len);for(int i=0;i<=res.len;i++)res.a[i]=0;for(int i=0;i<res.len;i++){res.a[i]+=((i<len)?a[i]:0)+((i<b.len)?b.a[i]:0);res.a[i+1]+=res.a[i]/mod;res.a[i]%=mod;}if(res.a[res.len]>0) res.len++;return res;}BigInt operator/(const int &b)const{BigInt ret;int i,down=0;for(int i=len-1;i>=0;i--){ret.a[i]=(a[i]+down*mod)/b;down=a[i]+down*mod-ret.a[i]*b;}ret.len=len;while(ret.a[ret.len-1]==0&&ret.len>1) ret.len--;return ret; }void output(){printf("%d",a[len-1]);for(int i=len-2;i>=0;i--)printf("%04d",a[i]);puts("");}
};
int main()
{int n;scanf("%d",&n);if(n==1) {puts("2");return 0;}if(n==2) {puts("4");return 0;}int a=(n+1)/2+(n*(n+1)/2-(n+1)/2)/2;int b=n*(n+1)/2;int c=((n*(n+1)/2+2)/3);BigInt aa(1),bb(1),cc(1);while(a--) aa=aa+aa;while(b--) bb=bb+bb;while(c--) cc=cc+cc;((aa+aa+aa+bb+cc+cc)/6).output();
}
luogu P2561 [AHOI2002]黑白瓷砖(polya定理)相关推荐
- (每日一题)P4128 [SHOI2006] 有色图(文末有色图!)(Polya定理)(超级详细,清晰易懂)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 每日一题(莫反 / 多项式 / 母函数 / 群论) 2021.4.13 群论 嘿嘿嘿,本题题名为 有涩 ...
- [BZOJ1815BZOJ1488]有色图/图的同构(Polya定理)
由于有很多本质相同的重复置换,我们先枚举各种长度的点循环分别有多少个,这个暴搜的复杂度不大,n=53时也只有3e5左右.对于每种搜索方案可以轻易求出它所代表的置换具体有多少个. 但我们搜索的是点置换组 ...
- AHOI 2002 黑白瓷砖
小可可在课余的时候受美术老师的委派从事一项漆绘瓷砖的任务.首先把n(n+1)/2块正六边形瓷砖拼成三角形的形状,右图给出了n=3时拼成的"瓷砖三角形".然后把每一块瓷砖漆成纯白色或 ...
- Polya定理与Burnside引理及其应用
Polya定理及其应用 群与置换群 轮换 PolyaPolyaPolya定理 BurnsideBurnsideBurnside引理 PolyaPolyaPolya定理的简单应用 PolyaPolyaP ...
- 置换群和Burnside引理,Polya定理
定义简化版: 置换,就是一个1~n的排列,是一个1~n排列对1~n的映射 置换群,所有的置换的集合. 经常会遇到求本质不同的构造,如旋转不同构,翻转交换不同构等. 不动点:一个置换中,置换后和置换前没 ...
- [codevs 2926] 黑白瓷砖(2002年安徽省队选拔赛)
描述 http://codevs.cn/problem/2926/ 题解: Polya定理的应用. 由于第一次做polya定理的题,故要写的详细些. 首先可以从题目中读到三个置换以及一个不动置换: 顺 ...
- poj2154Color polya定理+欧拉函数优化
没想到贱贱的数据居然是错的..搞得我调了一中午+晚上一小时(哦不d飞LJH掉RP毕竟他是BUFF)结果重判就对了五次.. 回归正题,这题傻子都看得出是polya定理(如果你不是傻子就看这里),还没有翻 ...
- Burnside引理和Polya定理学习笔记
前言 求·······的方案数 循环同构算一种 一脸懵逼 (于是我觉得系统的学一遍Burnside引理和Polya定理) 正文 置换 置换的概念 对于一个排列aia_iai 我们想成iii输进去会出 ...
- POJ 2409 Let it Bead (Polya定理)
题意 用k种颜色对n个珠子构成的环上色,旋转翻转后相同的只算一种,求不等价的着色方案数. 思路 Polya定理 X是对象集合{1, 2, --, n}, 设G是X上的置换群,用M种颜色染N种对象,则不 ...
最新文章
- 第三次学JAVA再学不好就吃翔(part26)--static关键字
- html5 a-z字母排序,Mint UI实现A-Z字母排序的城市选择列表
- idea 自动生成补全变量名 快捷键
- UVA494 Kindergarten Counting Game【输入输出+水题】
- pikachu暴力破解(burpsuite)
- android 10 无线 电脑模式,Win10电脑和安卓手机无线互投教程
- 想多赚钱!程序员如何把副业搞得风生水起?
- sql 查询结果随机排序
- 苹果iOS申请个人开发者账号注册教程
- donet core 应用 部署到CentOS
- 测评分享丨海思Hi3519AV100开发板功能测试
- 宝塔Linux面板如何进入,云服务器怎么进入宝塔面板
- Asp.Net Web 项目部署到阿里云 Windows版本服务器
- 什么是漏极开路【转】
- golang web 服务器 request 与 response 处理
- TPC/IP 协议头部说明
- oracle中的blob类型,clob类型,nclob类型主要区别是什么
- 杜克大学计算机数据科学,杜克大学数据科学专业解析
- 微信 js 点击下载APP
- 骑马式瘦腿瑜伽 消除肌肉型小腿
热门文章
- Tomcat调优教程(转载) 来自周立大佬文章
- java 0x01_【java】arcII码为0x01,0x02作为分隔符
- 深入浅出理解Redis
- 消防应急照明和疏散指示系统手动控制的设计与应用
- Twitter赢在开放,三年创造奇迹(收藏)
- 李沐windows深度学习环境配置
- pandas基于多条件文本模糊查询,list,str.contains()
- 互联网行业2015校园招聘
- c语言在线编译(c语言在线编译器手机版)
- mysql朗读_“绘爱”诗词朗读小程序源码(thinkphp+mysql+小程序端)