题意:
有k种颜色给3*3*3的魔方的54的面,8个点,12条棱涂色,有多少种不同的
思路:
要清楚正方体有多少种变换?
1)
不动
k^( 54+12+8)
2)
以面的中心旋转 (90 ,180, 270 )X 3条对称轴
3*K^(9+6+3+2)
3*K^(9*2+10+4+6)
3*K^(9+6+3+2)
3)
以棱中心为对称轴旋转 6条对称轴
6*k^(27+4+7)
4)
对体线为轴 (120 ,240 )X 4条
4*k^(18+4+4)
#include<bits/stdc++.h>
using namespace std;
#define mod 10007
int qpow(int a,int b)
{
int ans=1;
while(b)
{
if(b&1) ans=(ans*a)%mod;
a=(a*a)%mod;
b>>=1;
}
return ans;
}
int main()
{
int T,n,k=1;
cin>>T;
int a1=54+12+8;
int a2=(9+6+3+2);
int a3=(9*2+10+4+6);
int a4=(27+4+7);
int a5=(18+4+4);
while(T--)
{
scanf("%d",&n);
printf("Case %d: %d\n",k++,( qpow(n,a1)+6*qpow(n,a2)+3*qpow(n,a3)+6*qpow(n,a4)+8*qpow(n,a5))%mod * qpow(24,mod-2) %mod);
}
return 0;
}