HNU 12886 Cracking the Safe(暴力枚举)
题目链接:http://acm.hnu.cn/online/?action=problem&type=show&id=12886&courseid=274
解题报告:输入4个数,要你判断用 + 、- 、 * 、/、四种运算能不能得到一个结果为24的式子,可以用括号。
解释一下测试的第四组样例:应该是6 / (1 - 3 / 4)
暴力枚举三种符号分别是什么,然后枚举这三种符号运算的顺序,然后枚举这四个数字的24种排列方式,时间是4^3 * 6 * 24
然后注意要用double型,判断是否等于24的时候要这样fabs(ans - 24.0) <= 0.000000001
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<map>
#include<string>
#include<cmath>
using namespace std;
int fu[];
int mei[][] = {
{ , , ,},
{ , , ,},
{ , , ,},
{ , , ,},
{ , , ,},
{ , , ,},
{ , , ,},
{ , , ,},
{ , , ,},
{ , , ,},
{ , , ,},
{ , , ,},
{ , , ,},
{ , , ,},
{ , , ,},
{ , , ,},
{ , , ,},
{ , , ,},
{ , , ,},
{ , , ,},
{ , , ,},
{ , , ,},
{ , , ,},
{ , , ,},
};
double CC(int f,double a,double b)
{
if(f == && b == ) return ;
if(f == ) return a + b;
if(f == ) return a - b;
if(f == ) return a * b;
if(f == ) return a / b;
}
double calc(int l,double a,double b,double c,double d)
{
// double a = num[1],b = num[2],c = num[3],d = num[4];
if(l == )
return CC(fu[],CC(fu[],CC(fu[],a,b),c),d);
if(l == )
return CC(fu[],CC(fu[],a,b),CC(fu[],c,d));
if(l == )
return CC(fu[],CC(fu[],a,CC(fu[],b,c)),d);
if(l == )
return CC(fu[],a,CC(fu[],CC(fu[],b,c),d));
if(l == )
return CC(fu[],CC(fu[],a,b),CC(fu[],c,d));
if(l == )
return CC(fu[],a,CC(fu[],b,CC(fu[],c,d)));
}
int main()
{ int T;
scanf("%d",&T);
while(T--)
{
double num[];
scanf("%lf%lf%lf%lf",&num[],&num[],&num[],&num[]);
int flag = ;
for(int i = ;flag && i <= ;++i)
for(int j = ;flag && j <= ;++j)
for(int k = ;flag && k <= ;++k)
{
fu[] = i;
fu[] = j;
fu[] = k;
for(int m = ;flag && m < ;++m)
{
for(int l = ;flag && l <= ;++l)
{
double ans = calc(l,num[mei[m][]],num[mei[m][]],num[mei[m][]],num[mei[m][]]);
if(fabs(ans-24.0) <= 0.00000001)
{
flag = ;
break;
}
}
}
}
printf(flag? "NO\n":"YES\n");
}
return ;
}
HNU 12886 Cracking the Safe(暴力枚举)的更多相关文章
- HNU 12886 Cracking the Safe 二十四点的判断
经典的一个题,今天竟然写跪了…… 题意: 给你4个数字,让你判断是否能通过四则运算和括号,凑成24点. 思路: 暴力枚举运算顺序和运算符. 代码: #include <iostream> ...
- 暴力枚举 + 24点 --- hnu : Cracking the Safe
Cracking the Safe Time Limit: 1000ms, Special Time Limit:2500ms, Memory Limit:65536KB Total submit u ...
- HDU 4770 Lights Against Dudely 暴力枚举+dfs
又一发吐血ac,,,再次明白了用函数(代码重用)和思路清晰的重要性. 11779687 2014-10-02 20:57:53 Accepted 4770 0MS 496K 2976 B G++ cz ...
- HDU 1015.Safecracker【暴力枚举】【8月17】
Safecracker Problem Description === Op tech briefing, 2002/11/02 06:42 CST === "The item is lo ...
- CodeForces 742B Arpa’s obvious problem and Mehrdad’s terrible solution (暴力枚举)
题意:求定 n 个数,求有多少对数满足,ai^bi = x. 析:暴力枚举就行,n的复杂度. 代码如下: #pragma comment(linker, "/STACK:1024000000 ...
- 2014牡丹江网络赛ZOJPretty Poem(暴力枚举)
/* 将给定的一个字符串分解成ABABA 或者 ABABCAB的形式! 思路:暴力枚举A, B, C串! */ 1 #include<iostream> #include<cstri ...
- 51nod 1116 K进制下的大数 (暴力枚举)
题目链接 题意:中文题. 题解:暴力枚举. #include <iostream> #include <cstring> using namespace std; ; ; ch ...
- Codeforces Round #349 (Div. 1) B. World Tour 最短路+暴力枚举
题目链接: http://www.codeforces.com/contest/666/problem/B 题意: 给你n个城市,m条单向边,求通过最短路径访问四个不同的点能获得的最大距离,答案输出一 ...
- bzoj 1028 暴力枚举判断
昨天梦到这道题了,所以一定要A掉(其实梦到了3道,有两道记不清了) 暴力枚举等的是哪张牌,将是哪张牌,然后贪心的判断就行了. 对于一个状态判断是否为胡牌,1-n扫一遍,然后对于每个牌,先mod 3, ...
随机推荐
- Python与C++结构体交互
需求:根据接口规范,实现与服务端的数据交互 服务端结构体分包头.包体.包尾 包头C++结构体示例如下 typedef struct head { BYTE string1; BYTE string2; ...
- JQuery------动态添加的元素on方法不起作用解决方法
转载: http://www.jb51.net/article/70342.htm
- WinForm------PopupMenu控件的使用
转载: http://www.cnblogs.com/xlx0210/archive/2010/07/14/1777366.html
- easyUI数据表格datagrid之笔记
1.用ajax获取数据库数据 /**========================================= * 读取数据库信息,使用ajax的load方法 */function getMe ...
- paramiko模拟ansible远程执行命令
主模块 #!/usr/bin/env python from multiprocessing import Process import paramiko import time import sys ...
- Starling Tutorial
http://www.hsharma.com/tutorials/starting-with-starling-ep-1-intro-setup/
- 移动端a标签点击图片有阴影处理
移动端我们在点击页面中的一些图片的时候会出现阴影.处理方法只要给a标签加上 a { -webkit-tap-highlight-color: transparent; -webkit-touch-ca ...
- js中的preventDefault与stopPropagation详解
本篇文章主要是对js中的preventDefault与stopPropagation进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 首先讲解一下js中preventDefault和stopP ...
- 如何在ubuntu中启用SSH服务
如何在ubuntu14.04 中启用SSH服务 开篇科普: SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定:SSH 为 ...
- HTML5 常用的结构化标签整理
一.语义化结构化标签 结构化标签优点: 1.方便浏览器处理和识别,提升了网页的质量和语义. 2.减少了大量无意义的div标签,增强代码的可读性. 结构化标签:(header,nav,body,arti ...