uva 10733 - The Colored Cubes(置换)

这篇博客介绍了UVA在线判题系统中的问题10733——The Colored Cubes。博主探讨了如何解决给定n种颜色时,对立方体进行染色的问题,其中相同的旋转被视为一种。关键在于从考虑边的颜色转变为考虑面的颜色,以此来简化问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目链接:uva 10733 - The Colored Cubes

题目大意:给定n,表示有n种颜色,为立方体上色,相同旋转视为一种。

解题思路:参考uva 10601 - Cubes,正方体的旋转都是一样的,只要由考虑边的颜色变成考虑面的颜色。

#include <cstdio>
#include <cstring>
#include <algorithm>

using namespace std;
typedef long long ll;
ll n;

ll solve (int k) {
    ll ret = 1;
    for (int i  = 0; i < k; i++)
        ret *= n;
    return ret;
}

ll still () {
    return solve(6);
}

ll rot_point () {
    return 2 * 4 * solve(2);
}

ll rot_edge () {
    return 6 * solve(3);
}

ll rot_plane () {
    return 3 * 2 * solve(3) + 3 * solve(4);
}

ll polya () {
    return still() + rot_point() + rot_edge() + rot_plane();;
}

int main () {
    while (scanf("%lld", &n) == 1 && n) {
        printf("%lld\n", polya() / 24);
    }
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值