hdu_3547

本文探讨了一道有趣的组合数学问题:计算在正方体的八个顶点进行涂色后,通过各种翻转操作无法得到相同颜色布局的情况总数。文章运用Polya定理并详细分析了所有可能的置换状态,最终给出了一个Java程序实现。

发现最近题目老是看不下去呀,英语要加强了,六级还是抓紧考过吧,丢人了。这道题目的意思是,给你一个正方体,然后让你正方形的八个顶点涂色,看看有多少种经过翻转后也不相同的情况。
解析:肯定还是要用到polya定理了,这里的关键在与分析有多少种置换的状态:
1.绕着相互对立的两个面旋转,有90度,180度,270度,所以总共有3*3=9种情况。
2.绕着相互对立的两个边旋转,有180度这样,所以总共有6*1=6种。
3.绕着对角点旋转,有120度,240度这样,所以总共有4*2=8种。
4.不动,有一种。
综上所述,总共有24种。
ans=x^8+17*x^4+6*x^2

import java.util.Scanner;
import java.math.BigInteger;
import java.math.BigDecimal;
public class Main{
    public static void main(String []args){
        Scanner cin=new Scanner(System.in);
        int t;
        BigInteger a,b,c;
        t=cin.nextInt();
        BigInteger tmp=new BigInteger("17");
        BigInteger tmp2=new BigInteger("6");
        for(int cnt=1;cnt<=t;cnt++){
            a=cin.nextBigInteger();
            String ans=a.pow(8).add(a.pow(4).multiply(tmp)).add(a.pow(2).multiply(tmp2)).divide(new BigInteger("24")).toString();
            int len=ans.length();
            System.out.print("Case "+cnt+": ");
            if(len<=15) System.out.println(ans);
            else {
                System.out.println(ans.substring(len-15,len));
            }
        }
    }
} 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值