ACM-奇特的立方体
输入
一次输入8个整数
输出
YES或者NO
YES表示可能构成满足条件的立方体
NO则表示不能
样例输入
1 2 3 4 5 6 7 8
样例输出
YES 思路:标记8个顶点的位置,构建子空间树即可。重点是计算每个面的顶点和!!!!!
// 奇特的立方体.cpp : 定义控制台应用程序的入口点。
// #include "stdafx.h" #include <iostream>
#include <cstring>
using namespace std; const int MAX = ;
int n = , flag, arr[MAX]/*8个数字*/, vis[MAX]/*8个位置是否放了*/,map[MAX]/*每个位置上方的数字*/; void printa()
{
for (int i = ; i < n; i++) cout << map[i] << " ";
cout << endl;
} int check()
{
//printa();
int s[] = { };
s[] = map[] + map[] + map[] + map[];
s[] = map[] + map[] + map[] + map[];
s[] = map[] + map[] + map[] + map[];
s[] = map[] + map[] + map[] + map[];
s[] = map[] + map[] + map[] + map[];
s[] = map[] + map[] + map[] + map[]; for (int i = ; i < ; i++)
{
if (s[i - ] != s[i]) return ;
} //cout << "sum:" << s[0] << endl;
return ;
} void DFS(int pos)
{
//cout << "pos:" << pos << endl;
if (flag) return;
if (pos >= n)
{
if (check()) { flag = ;}
return;
} for (int i = ; i < n; i++)
{
if (!vis[i])
{
vis[i] = ;
map[i] = arr[pos];
DFS(pos+); vis[i] = ;
map[i] = ;
}
} } int main()
{
for (int i = ; i < n; i++) cin >> arr[i]; flag = ;
memset(vis, , sizeof(vis));
memset(map, , sizeof(map)); DFS(); if (flag) cout << "YES" << endl;
else cout << "NO" << endl; return ;
}
ACM-奇特的立方体的更多相关文章
- [转]100个经典C语言程序(益智类问题)
目录: 1.绘制余弦曲线 2.绘制余弦曲线和直线 3.绘制圆 4.歌星大奖赛 5.求最大数 6.高次方数的尾数 8.借书方案知多少 9.杨辉三角形 10.数制转换 11.打鱼还是晒网 12.抓交通肇事 ...
- 【算法】C语言趣味程序设计编程百例精解
C语言趣味程序设计编程百例精解 C/C++语言经典.实用.趣味程序设计编程百例精解(1) https://wenku.baidu.com/view/b9f683c08bd63186bcebbc3c. ...
- 100个经典C语言程序(益智类)
100个经典C语言程序(益智类) [1.绘制余弦曲线] 在屏幕上用“*”显示0~360度的余弦函数cos(x)曲线 [问题分析与算法设计] 利用cos(x)的左右对称性,将屏幕的行方向定义为x,列方向 ...
- 楼天城楼教主的acm心路历程(作为励志用)
楼主个人博客:小杰博客 利用假期空暇之时,将这几年GCJ,ACM,TopCoder 參加的一些重要比赛作个 回顾.昨天是GCJ2006 的回顾,今天时间上更早一些吧,我如今还清晰记得3 年 前,我刚刚 ...
- 【转】楼天城楼教主的acm心路历程(作为励志用)
利用假期空闲之时,将这几年GCJ,ACM,TopCoder 参加的一些重要比赛作个回顾.昨天是GCJ2006 的回忆,今天时间上更早一些吧,我现在还清晰记得3 年前,我刚刚参加ACM 时参加北京赛区2 ...
- 剪辑的楼天城的ACM之路
楼天城楼教主的acm心路历程(剪辑) 利用假期空闲之时,将这几年GCJ,ACM,TopCoder 参加的一些重要比赛作个回顾.昨天是GCJ2006 的回忆,今天时间上更早一些吧,我现在还清晰记得3 年 ...
- 楼塔当天领袖acm心理(作为励志使用)
楼主个人博客:吉尔博客 假期空闲的时候使用.这些年来GCJ.ACM,TopCoder 的一个号码的一重要的比赛的参与 回顾.GCJ2006 的回顾,今天时间上更早一些吧,我如今还清晰记得3 年 前.我 ...
- 电子科技大学第八届ACM趣味程序设计竞赛第四场(正式赛)题解
A. Picking&Dancing 有一列n个石子,两人交替取石子,每次只能取连续的两个,取走后,剩下的石子仍然排成1列.问最后剩下的石子数量是奇数还是偶数. 读懂题意就没什么好说的. #i ...
- hdu 4052 线段树扫描线、奇特处理
Adding New Machine Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Othe ...
随机推荐
- Ajax请求回调地狱及解决方案(promise、async和await)
谈及回调地狱发生得情况和解决办法,就必须追溯到原生ajax请求. 先列出服务器提供的数据接口: // 服务器端接口 app.get('/data1', (req, res) => { res.s ...
- 【剑指Offer面试编程题】题目1522:包含min函数的栈--九度OJ
题目描述: 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数. 输入: 输入可能包含多个测试样例,输入以EOF结束. 对于每个测试案例,输入的第一行为一个整数n(1<=n&l ...
- Java 代码空间复杂度查看工具
SourceMonitor 下载地址:http://www.campwoodsw.com/sourcemonitor.html
- Percona XtraBackup不锁库搭建slave数据库-基于GTID
Percona XtraBackup不锁库搭建slave数据库-基于GTID 1.下载安装epel源并安装 wget http://ftp.cuhk.edu.hk/pub/linux/fedora-e ...
- P1001 A+B Format
转跳点:
- day17-Python运维开发基础(类的封装 / 对象和类的相关操作、构造方法)
1. 类的封装及相关操作 # ### oop 面向对象程序开发 """ #用几大特征表达一类事物称为一个类,类更像是一张图纸,表达的是一个抽象概念 "" ...
- MySQL多实例安装(相同版本)
本文以MySQL5.7为例,介绍在同一台机器下如何安装多个MySQL实例. 环境:RHEL 6.5 + MySQL 5.7 1.单实例MySQL安装 2.多实例MySQL配置 3.多实例MySQL初始 ...
- sklearn实现多分类逻辑回归
sklearn实现多分类逻辑回归 #二分类逻辑回归算法改造适用于多分类问题1.对于逻辑回归算法主要是用回归的算法解决分类的问题,它只能解决二分类的问题,不过经过一定的改造便可以进行多分类问题,主要的改 ...
- Eclipse设置jvm参数的三种方式
方式1. 修改Elipse运行JRE默认JVM参数打开Eclipse,选择Window--Preferences...在对话框左边的树上双击Java,再双击Installed JREs,在右边选择前面 ...
- 吴裕雄--天生自然JAVA面向对象高级编程学习笔记:对象的多态性
class A{ // 定义类A public void fun1(){ // 定义fun1()方法 System.out.println("A --> public void fun ...