题目描述:奇特的立方体
任意给出8个整数,将这8个整数分别放在一个立方体的八个顶点上,要求检验每个面上的四个数之和相等这个条件能否被满足。

输入

  1. 一次输入8个整数

输出

  1. YES或者NO
  2. YES表示可能构成满足条件的立方体
  3. NO则表示不能

样例输入

  1. 1 2 3 4 5 6 7 8

样例输出

  1. YES
  2.  
  3. 思路:标记8个顶点的位置,构建子空间树即可。重点是计算每个面的顶点和!!!!!
  1. // 奇特的立方体.cpp : 定义控制台应用程序的入口点。
  2. //
  3.  
  4. #include "stdafx.h"
  5.  
  6. #include <iostream>
  7. #include <cstring>
  8. using namespace std;
  9.  
  10. const int MAX = ;
  11. int n = , flag, arr[MAX]/*8个数字*/, vis[MAX]/*8个位置是否放了*/,map[MAX]/*每个位置上方的数字*/;
  12.  
  13. void printa()
  14. {
  15. for (int i = ; i < n; i++) cout << map[i] << " ";
  16. cout << endl;
  17. }
  18.  
  19. int check()
  20. {
  21. //printa();
  22. int s[] = { };
  23. s[] = map[] + map[] + map[] + map[];
  24. s[] = map[] + map[] + map[] + map[];
  25. s[] = map[] + map[] + map[] + map[];
  26. s[] = map[] + map[] + map[] + map[];
  27. s[] = map[] + map[] + map[] + map[];
  28. s[] = map[] + map[] + map[] + map[];
  29.  
  30. for (int i = ; i < ; i++)
  31. {
  32. if (s[i - ] != s[i]) return ;
  33. }
  34.  
  35. //cout << "sum:" << s[0] << endl;
  36. return ;
  37. }
  38.  
  39. void DFS(int pos)
  40. {
  41. //cout << "pos:" << pos << endl;
  42. if (flag) return;
  43. if (pos >= n)
  44. {
  45. if (check()) { flag = ;}
  46. return;
  47. }
  48.  
  49. for (int i = ; i < n; i++)
  50. {
  51. if (!vis[i])
  52. {
  53. vis[i] = ;
  54. map[i] = arr[pos];
  55. DFS(pos+);
  56.  
  57. vis[i] = ;
  58. map[i] = ;
  59. }
  60. }
  61.  
  62. }
  63.  
  64. int main()
  65. {
  66. for (int i = ; i < n; i++) cin >> arr[i];
  67.  
  68. flag = ;
  69. memset(vis, , sizeof(vis));
  70. memset(map, , sizeof(map));
  71.  
  72. DFS();
  73.  
  74. if (flag) cout << "YES" << endl;
  75. else cout << "NO" << endl;
  76.  
  77. return ;
  78. }
  1.  

ACM-奇特的立方体的更多相关文章

  1. [转]100个经典C语言程序(益智类问题)

    目录: 1.绘制余弦曲线 2.绘制余弦曲线和直线 3.绘制圆 4.歌星大奖赛 5.求最大数 6.高次方数的尾数 8.借书方案知多少 9.杨辉三角形 10.数制转换 11.打鱼还是晒网 12.抓交通肇事 ...

  2. 【算法】C语言趣味程序设计编程百例精解

    C语言趣味程序设计编程百例精解 C/C++语言经典.实用.趣味程序设计编程百例精解(1)  https://wenku.baidu.com/view/b9f683c08bd63186bcebbc3c. ...

  3. 100个经典C语言程序(益智类)

    100个经典C语言程序(益智类) [1.绘制余弦曲线] 在屏幕上用“*”显示0~360度的余弦函数cos(x)曲线 [问题分析与算法设计] 利用cos(x)的左右对称性,将屏幕的行方向定义为x,列方向 ...

  4. 楼天城楼教主的acm心路历程(作为励志用)

    楼主个人博客:小杰博客 利用假期空暇之时,将这几年GCJ,ACM,TopCoder 參加的一些重要比赛作个 回顾.昨天是GCJ2006 的回顾,今天时间上更早一些吧,我如今还清晰记得3 年 前,我刚刚 ...

  5. 【转】楼天城楼教主的acm心路历程(作为励志用)

    利用假期空闲之时,将这几年GCJ,ACM,TopCoder 参加的一些重要比赛作个回顾.昨天是GCJ2006 的回忆,今天时间上更早一些吧,我现在还清晰记得3 年前,我刚刚参加ACM 时参加北京赛区2 ...

  6. 剪辑的楼天城的ACM之路

    楼天城楼教主的acm心路历程(剪辑) 利用假期空闲之时,将这几年GCJ,ACM,TopCoder 参加的一些重要比赛作个回顾.昨天是GCJ2006 的回忆,今天时间上更早一些吧,我现在还清晰记得3 年 ...

  7. 楼塔当天领袖acm心理(作为励志使用)

    楼主个人博客:吉尔博客 假期空闲的时候使用.这些年来GCJ.ACM,TopCoder 的一个号码的一重要的比赛的参与 回顾.GCJ2006 的回顾,今天时间上更早一些吧,我如今还清晰记得3 年 前.我 ...

  8. 电子科技大学第八届ACM趣味程序设计竞赛第四场(正式赛)题解

    A. Picking&Dancing 有一列n个石子,两人交替取石子,每次只能取连续的两个,取走后,剩下的石子仍然排成1列.问最后剩下的石子数量是奇数还是偶数. 读懂题意就没什么好说的. #i ...

  9. hdu 4052 线段树扫描线、奇特处理

    Adding New Machine Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Othe ...

随机推荐

  1. Java 虚拟机程序监控工具软件

    jdk自带的查看工具(jdk安装目录/bin) .Java VisualVM .jconsole

  2. Acwing897 最长公共子序列

    题目大意:求两个字符串的最长公共子序列的长度. 分析:这是一个典型的dp入门题,LCS. 代码: #include<bits/stdc++.h> using namespace std; ...

  3. ASP.NET MVC 4 中Razor 视图中JS无法调试 (重要)

    谷歌浏览器,firefox,IE 都可以 1.首先检查IE中这2个属性是否勾选了. 2.选择IE浏览器进行调试,调试方法有2种 A:采用debugger;的方法,如下图所示: 这时不用调试断点就会在d ...

  4. EJS 高效的 JavaScript 模板引擎

    什么是 EJS? "E" 代表 "effective",即[高效].EJS 是一套简单的模板语言,帮你利用普通的 JavaScript 代码生成 HTML 页面 ...

  5. 「Luogu P3072 [USACO13FEB]周长Perimeter」

    USACO的题目,感觉还是挺神奇的. 前置芝士 DFS(BFS)遍历:用来搜索(因为DFS好写,本文以DFS为准还不是因为作者懒) STL中的set(map)的基本用法:数据很大,不能直接存. 具体做 ...

  6. 树莓派中实现ll命令

    用管了centos的童鞋们,到了一个没有ll命令的环境里,那是多么的痛苦,在baidu后,将实现方法记录如下 方法一: echo "alias ll='ls -l'" >&g ...

  7. [经验] HTML页面中子盒子溢出了怎么办

    背景: 在查询数据记录的一个页面上使用bootstar 框架的分页插件作为显示数据表格的工具. 问题: 当查询的范围在一个较短的时间内时, 子元素是乖乖的呆在父元素内部的, 但是一但将查询的时间范围扩 ...

  8. LATTICE 编程烧录器HW-USBN-2B使用说明

    HW-USBN-2B说明文档 1.       引脚定义 编程引脚 名称 编程设备引脚类型 描述 VCC 编程电压 输入 连接VCC到目标设备,典型的ICC=10Ma.板子设计必须考虑VCC的电流供应 ...

  9. SpringBoot整合MyBatis获得插入数据后获取主键,返回值总是1

    xml里的写法 <insert id="insertLogin" parameterType="com.xyt.p2p.pojo.LoginInfo" k ...

  10. Matplotlib 饼图

    章节 Matplotlib 安装 Matplotlib 入门 Matplotlib 基本概念 Matplotlib 图形绘制 Matplotlib 多个图形 Matplotlib 其他类型图形 Mat ...