HDU 4633 Who's Aunt Zhang ★(Polya定理 + 除法取模)
题意
用K个颜色给魔方染色,魔方只能整体旋转并且旋转重合的方案算一种,求一共有多少不同的染色方案。
思路
经典的Polya应用,记住正六面体的置换群就可以了,魔方就是每个大面变成9个小面了而已:
本题模型共有4大类置换,共24种:
1. 不做任何旋转 K ^ (54 + 12 + 8)
2. 绕相对面中心的轴转
1) 90度 K ^ (15 + 3 + 2) * 3
1) 180度 K ^ (28 + 6 + 4) * 3
1) 270度 K ^ (15 + 3 + 2) * 3
3. 绕相对棱中心的轴转
1) 180度 K ^ (27 + 7 + 4) * 6
4. 绕相对顶点的轴转
1) 120度 K ^ (18 + 4 + 4) * 4
1) 240度 K ^ (18 + 4 + 4) * 4
然后直接套公式 即可~
即可~
哦还有一点需要注意的是(A/B) % C = A % (B*C) / C。大部分人是把除法转化为模逆元的乘法,反正我是不懂……
代码
[cpp]
#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <string>
#include <cstring>
#include <vector>
#include <set>
#include <stack>
#include <queue>
#define MID(x,y) ((x+y)/2)
#define MEM(a,b) memset(a,b,sizeof(a))
#define REP(i, begin, end)   for (int i = begin; i <= end; i ++)
using namespace std;
int res;
const int mod = 10007 * 24;
int powi(int n, int p){
    int res = 1;
    for (int i = 1; i <= p; i ++){
        res = res * n % mod;
    }
    return res;
}
int main(){
	//freopen("test.in", "r", stdin);
	//freopen("test.out", "w", stdout);
	int t, k;
	scanf("%d", &t);
	for (int i = 1; i <= t; i ++){
        scanf("%d", &k);
        res = (powi(k, 74) + 6 * powi(k, 20) + 3 * powi(k, 38) + 6 * powi(k, 38) + 8 * powi(k, 26)) % mod;
        res /= 24;
        printf("Case %d: %d\n", i, res);
	}
	return 0;
}
[/cpp]
HDU 4633 Who's Aunt Zhang ★(Polya定理 + 除法取模)的更多相关文章
- HDU 4633 Who's Aunt Zhang (Polya定理+快速幂)
		题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=4633 典型的Polya定理: 思路:根据Burnside引理,等价类个数等于所有的置换群中的不动点的个 ... 
- HDU 4633 Who's Aunt Zhang (2013多校4  1002  polya计数)
		Who's Aunt Zhang Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ... 
- hdu 4633  Who's Aunt Zhang(polya+逆元)
		Who's Aunt Zhang Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ... 
- HDU 4633 Who's Aunt Zhang(polay计数)
		题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4633 题意:有下面一个魔方.有K种颜色.可以为顶点.边.面(每个面有9个小面)染色.两种染色算作一种当 ... 
- hdu 3037 费马小定理+逆元除法取模+Lucas定理
		组合数学推推推最后,推得要求C(n+m,m)%p 其中n,m小于10^9,p小于1^5 用Lucas定理求(Lucas定理求nm较大时的组合数) 因为p数据较小可以直接阶乘打表求逆元 求逆元时,由费马 ... 
- HDU 5895 Mathematician QSC(矩阵乘法+循环节降幂+除法取模小技巧+快速幂)
		传送门:HDU 5895 Mathematician QSC 这是一篇很好的题解,我想讲的他基本都讲了http://blog.csdn.net/queuelovestack/article/detai ... 
- HDU4675【GCD of scequence】【组合数学、费马小定理、取模】
		看题解一开始还有地方不理解,果然是我的组合数学思维比较差 然后理解了之后自己敲了一个果断TLE.... 我以后果然还得多练啊 好巧妙的思路啊 知识1: 对于除法取模还需要用到费马小定理: a ^ (p ... 
- 51nod1119(除法取模/费马小定理求组合数)
		题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1119 题意:中文题诶- 思路:这题数据比较大直接暴力肯定是不 ... 
- hdu 1817 Necklace of Beads(Polya定理)
		Necklace of Beads Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others ... 
随机推荐
- 使用pidstat查看进程资源使用情况
			简介 pidstat主要用于监控全部或指定进程占用系统资源的情况,如CPU,内存.设备IO.任务切换.线程等.pidstat首次运行时显示自系统启动开始的各项统计信息,之后运行pidstat将显示自上 ... 
- Linux救援模式
			Linux系统使用版本:CentOS 6.5 救援模式有什么作用: ◆可以更改root密码: ◆恢复硬盘.文件系统操作: ◆系统启动不来的时候,只能通过救援模式来启动: 救援模式启动的步骤如下: 1. ... 
- 利用阿里云腾讯云正版KMS服务器端口转发
			注意:以下内容仅供实验,请勿用于任何非法用途我们知道,阿里云和腾讯云在内网部署了KMS服务器,而且是正版的,那么,有没有办法使用公网的计算机直接或间接连接到这些KMS服务器呢,受代理服务器和跳板机配置 ... 
- python网络编程知识体系
			python的网络编程包括: 1.mvc-socket-线程-进程-并发-IO异步-消费者生产者 2.mysql-paramiko-审计堡垒机-redis-分布式监控 线程.进程 和 协程 原理剖析 ... 
- 内核通信之Netlink源码分析-用户内核通信原理3
			2017-07-06 上节主讲了用户层通过netlink和内核交互的详细过程,本节分析下用户层接收数据的过程…… 有了之前基础知识的介绍,用户层接收数据只涉及到一个核心调用readmsg(), 其他的 ... 
- 评论抓取:Python爬取微信在APPStore上的评论内容及星级
			#完整程序如下: import requests import re def getHTMLText(url): try: r = requests.get(url) r.raise_for_stat ... 
- display属性的表格布局相关属性
			基于CSS属性display:table的表格布局的使用 项目改造中遇到DIV+CSS实现的table,新需求需要在表格使用单元格合并,网上调查返现CSS display:table实现的tabl ... 
- [Axiom 3D]3.SceneManager场景管理器
			首先看看Axiom.Core命名空间下public abstract class SceneManager : DisposableObject A SceneManager organizes th ... 
- marathon-lb-什么是服务发现?(转)
			摘要: 将容器应用部署到集群时,其服务地址,即IP和端口, 是由集群系统动态分配的.那么,当我们需要访问这个服务时,如何确定它的地址呢?这时,就需要服务发现(Service Discovery)了.本 ... 
- Eclipse中没有javax.servlet和javax.servlet.http包的处理办法
			使用Eclips开发JSP也需要这两个包:javax.servlet和javax.servlet.http:若提示没有javax.servlet包则安装如下处理办法解决: 如果你装了Tomacat,那 ... 
