Heim > Datenbank > MySQL-Tutorial > zoj2027TravellingFee(最短路变形)

zoj2027TravellingFee(最短路变形)

WBOY
Freigeben: 2016-06-07 16:02:50
Original
1156 Leute haben es durchsucht

All 6 sides of a cube are to becoated with paint. Each side is is coated uniformly with one color. When a selectionof n different colors of paint is available, how many different cubes can youmake? Note that any two cubes are onlyto be cal

All 6 sides of a cube are to becoated with paint. Each side is is coated uniformly with one color. When a selectionof n different colors of paint is available, how many different cubes can youmake?

Note that any two cubes are onlyto be called "different" if it is not possible to rotate the one intosuch a position that it appears with the same coloring as the other.

Input

Each line of the input filecontains a single integer n(0denoting the number of different colors. Input is terminated by a line wherethe value ofn=0. This line shouldnot be processed.

Output

For each line of input produce oneline of output. This line should contain the number of different cubes that canbe made by using the according number of colors.

SampleInput Outputfor Sample Input

1

2

0

1

10


Problem setter: EricSchmidt

Special Thanks: DerekKisman, EPS

题意:求用n中颜色涂立方体的不同种数,能旋转到的算一种

题意:和上一题UVA - 10601 Cubes (组合+置换) 的立方体旋转考虑的分类是一样的,不过这里我们考虑的是涂面的情况

1.不变置换(1)(2)(3)(4)(5)(6), 共1个;

2.沿对面中心轴旋转 90度, 270度 (1)(2345)(6), (1)(5432)(6) 同类共 6个;

3.沿对面中心轴旋转 180度 (1)(24)(35)(6), 同类共 3个;

4.沿对角线轴旋转 120度, 240度 (152)(346), (251)(643) 同类共 8个;

5.沿对边中点轴旋转 180度 (16)(25)(43) 同类共 6个;

<strong>[cpp]</strong> view plaincopy
Nach dem Login kopieren
在CODE上查看代码片派生到我的代码片
  1. #include <iostream></iostream>
    Nach dem Login kopieren
  2. #include <cstdio></cstdio>
    Nach dem Login kopieren
  3. #include <cstring></cstring>
    Nach dem Login kopieren
  4. #include <cmath></cmath>
    Nach dem Login kopieren
  5. #include <algorithm></algorithm>
    Nach dem Login kopieren
  6. typedef long long ll;
    Nach dem Login kopieren
  7. using namespace std;
    Nach dem Login kopieren
  8. ll n;
    Nach dem Login kopieren
  9. ll still() {
    Nach dem Login kopieren
  10. return n * n * n * n * n * n;
    Nach dem Login kopieren
  11. }
    Nach dem Login kopieren
    Nach dem Login kopieren
    Nach dem Login kopieren
    Nach dem Login kopieren
    Nach dem Login kopieren
    Nach dem Login kopieren
    Nach dem Login kopieren
  12. ll point() {
    Nach dem Login kopieren
  13. return 4 * 2 * n * n;
    Nach dem Login kopieren
  14. }
    Nach dem Login kopieren
    Nach dem Login kopieren
    Nach dem Login kopieren
    Nach dem Login kopieren
    Nach dem Login kopieren
    Nach dem Login kopieren
    Nach dem Login kopieren
  15. ll edge() {
    Nach dem Login kopieren
  16. return 6 * n * n * n;
    Nach dem Login kopieren
  17. }
    Nach dem Login kopieren
    Nach dem Login kopieren
    Nach dem Login kopieren
    Nach dem Login kopieren
    Nach dem Login kopieren
    Nach dem Login kopieren
    Nach dem Login kopieren
  18. ll plane() {
    Nach dem Login kopieren
  19. return 3 * 2 * n * n * n + 3 * n * n * n * n;
    Nach dem Login kopieren
  20. }
    Nach dem Login kopieren
    Nach dem Login kopieren
    Nach dem Login kopieren
    Nach dem Login kopieren
    Nach dem Login kopieren
    Nach dem Login kopieren
    Nach dem Login kopieren
  21. ll polya() {
    Nach dem Login kopieren
  22. ll ans = 0;
    Nach dem Login kopieren
  23. ans += still();
    Nach dem Login kopieren
  24. ans += point();
    Nach dem Login kopieren
  25. ans += edge();
    Nach dem Login kopieren
  26. ans += plane();
    Nach dem Login kopieren
  27. return ans / 24;
    Nach dem Login kopieren
  28. }
    Nach dem Login kopieren
    Nach dem Login kopieren
    Nach dem Login kopieren
    Nach dem Login kopieren
    Nach dem Login kopieren
    Nach dem Login kopieren
    Nach dem Login kopieren
  29. int main() {
    Nach dem Login kopieren
  30. while (scanf("%lld", &n) != EOF && n) {
    Nach dem Login kopieren
  31. printf("%lld\n", polya());
    Nach dem Login kopieren
  32. }
    Nach dem Login kopieren
    Nach dem Login kopieren
    Nach dem Login kopieren
    Nach dem Login kopieren
    Nach dem Login kopieren
    Nach dem Login kopieren
    Nach dem Login kopieren
  33. return 0;
    Nach dem Login kopieren
  34. }
    Nach dem Login kopieren
    Nach dem Login kopieren
    Nach dem Login kopieren
    Nach dem Login kopieren
    Nach dem Login kopieren
    Nach dem Login kopieren
    Nach dem Login kopieren
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage