好吧我就是蒟蒻根本没听说过群论(虽说听叉姐说几万年都不会考)

我也讲不太来,直接戳VFK大神的blog啦 = = http://vfleaking.blog.163.com/blog/static/17480763420119685112649/

然后在加上2001年的论文Pólya原理及其应用 应该能做了吧= =

反正数论题就是各种小心

CODE:

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
#define maxn 10000
struct bigint{
 int len,a[maxn];
 int init(int x){memset(a,0,sizeof(a));a[len=1]=x;}
 int print(){
  for (int i=len;i>=1;i--) printf("%d",a[i]);
  return 0;
 }
}f[103];
bigint operator + (const bigint &x,bigint &y) {
 bigint ans;
 ans.init(0);
 ans.len=max(x.len,y.len);
 for (int i=1;i<=ans.len;i++) {
  ans.a[i]=x.a[i]+y.a[i]+ans.a[i-1]/10;
  ans.a[i-1]%=10;
 }
 if (ans.a[ans.len]/10) {
  ans.a[++ans.len]=1;
  ans.a[ans.len-1]%=10;
 }
 return ans;
}
bigint operator - (const bigint &x,bigint &y) {
 bigint ans;
 ans.init(0);
 ans.len=max(x.len,y.len);
 for (int i=1;i<=ans.len;i++) {
  ans.a[i]=x.a[i]-y.a[i];
  if (ans.a[i-1]<0) {ans.a[i-1]+=10;ans.a[i]--;}
 }
 while (!ans.a[ans.len]) ans.len--;
 return ans;
}
bigint operator * (const bigint &x,int y){
 bigint ans;
 ans.init(0);
 ans.len=x.len;
 for (int i=1;i<=ans.len;i++) {
  ans.a[i]=x.a[i]*y +ans.a[i-1]/10;
  ans.a[i-1]%=10;
 }
 if (ans.a[ans.len]/10) {
  ans.a[ans.len+1]=ans.a[ans.len]/10;
  ans.a[ans.len++]%=10;
 }
 return ans;
}
int main(){
 int n;
 scanf("%d",&n);
 f[1].init(1);f[2].init(5);
 f[0].init(2);
 for (int i=3;i<=n;i++) f[i]=f[i-1]*3-f[i-2]+f[0];
 f[n].print();
 return 0;
}

BZOJ 1004: [HNOI2008]Cards(群论)的更多相关文章

  1. BZOJ 1004: [HNOI2008]Cards( 置换群 + burnside引理 + 背包dp + 乘法逆元 )

    题意保证了是一个置换群. 根据burnside引理, 答案为Σc(f) / (M+1). c(f)表示置换f的不动点数, 而题目限制了颜色的数量, 所以还得满足题目, 用背包dp来计算.dp(x,i, ...

  2. [BZOJ 1004] [HNOI2008] Cards 【Burnside引理 + DP】

    题目链接:BZOJ - 1004 题目分析 首先,几个定义和定理引理: 群:G是一个集合,*是定义在这个集合上的一个运算. 如果满足以下性质,那么(G, *)是一个群. 1)封闭性,对于任意 a, b ...

  3. bzoj 1004 [HNOI2008]Cards && poj 2409 Let it Bead ——置换群

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1004 http://poj.org/problem?id=2409 学习材料:https:/ ...

  4. BZOJ 1004 HNOI2008 Cards Burnside引理

    标题效果:特定n张卡m换人,编号寻求等价类 数据保证这m换人加上置换群置换后本身构成 BZOJ坑爹0.0 条件不那么重要出来尼玛怎么做 Burnside引理--昨晚为了做这题硬啃了一晚上白书0.0 都 ...

  5. BZOJ 1004: [HNOI2008]Cards

    Description 给你一个序列,和m种可以使用多次的置换,用3种颜色染色,求方案数%p. Sol Burnside定理+背包. Burnside定理 \(N(G,\mathbb{C})=\fra ...

  6. BZOJ 1004: [HNOI2008]Cards [Polya 生成函数DP]

    传送门 题意:三种颜色,规定使用每种颜色次数$r,g,b$,给出一个置换群,求多少种不等价着色 $m \le 60,\ r,g,b \le 20$ 咦,规定次数? <组合数学>上不是有生成 ...

  7. bzoj 1004 1004: [HNOI2008]Cards burnside定理

    1004: [HNOI2008]Cards Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1668  Solved: 978[Submit][Stat ...

  8. 【BZOJ 1004】 1004: [HNOI2008]Cards (置换、burnside引理)

    1004: [HNOI2008]Cards Description 小春现在很清闲,面对书桌上的N张牌,他决定给每张染色,目前小春只有3种颜色:红色,蓝色,绿色.他询问Sun有多少种染色方案,Sun很 ...

  9. 【BZOJ】1004: [HNOI2008]Cards(置换群+polya+burnside)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1004 学习了下polya计数和burnside引理,最好的资料就是:<Pólya 计数法的应用 ...

随机推荐

  1. cocos2d动作讲解

    从本章开始,我们开始讲解cocos2d-x库的动作(Action).游戏的世界是一个动态的世界:无论是主角精灵还是NPC精灵都处于不断的运动当中,甚至是背景中漂流的树叶,随风而动的小草.这些明显的或者 ...

  2. 【noip】华容道

    描述 小 B 最近迷上了华容道,可是他总是要花很长的时间才能完成一次.于是,他想到用编程来完成华容道:给定一种局面,华容道是否根本就无法完成,如果能完成,最少需要多少时间. 小 B 玩的华容道与经典的 ...

  3. php 利用socket上传文件

    php 利用socket上传文件 张映 发表于 2010-06-02 分类目录: php 一,利用fsockopen来上传文件 以前我写过一篇关于socket通信原理的博文http://blog.51 ...

  4. Jquery Validate 正则表达式实用验证代码常用的

    jQuery.validate 的正则验证功能,包括手机号码.电话号码.邮政编码.QQ号码.IP地址.字母和数字.中文的验证等 手机号码验证 以下为引用内容: 代码如下: jQuery.validat ...

  5. iOS 之 获取View所在控制器

    1. UIResponder UIViewController *uvc; UIResponder* nextResponder = [self.superview.superview.supervi ...

  6. Android环境搭建与HelloWorld

    引言 本系列适合0基础的人员,因为我就是从0开始的,此系列记录我步入Android开发的一些经验分享,望与君共勉!作为Android队伍中的一个新人的我,如果有什么不对的地方,还望不吝赐教. 在开始A ...

  7. PHP之Mysql常用SQL语句示例的深入分析

    1.插入数据insert into表名(列名1,列名2,列名..) values(值1,值2,值...); insert into product(name, price, pic_path) val ...

  8. CentOS6.5+mysql5.5源码安装

    数据库安装 1新增mysql用户 [root@HE1mysql]# groupadd mysql -g 502 [root@HE1mysql]# useradd -g mysql -s /sbin/n ...

  9. 判断div是否有滚动条

    判断div是否有滚动条 var obj=document.getElementById("showDiv"); if(obj.scrollHeight>obj.clientH ...

  10. 2017年学习的三个CSS新特性

    这是翻译的一篇文章,原文是:3 New CSS Features to Learn in 2017,翻译的不是很好,如有疑问欢迎指出. 新的一年,我们有一系列新的东西要学习.尽管CSS有很多新的特性, ...