题目链接: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(暴力枚举)的更多相关文章

  1. HNU 12886 Cracking the Safe 二十四点的判断

    经典的一个题,今天竟然写跪了…… 题意: 给你4个数字,让你判断是否能通过四则运算和括号,凑成24点. 思路: 暴力枚举运算顺序和运算符. 代码: #include <iostream> ...

  2. 暴力枚举 + 24点 --- hnu : Cracking the Safe

    Cracking the Safe Time Limit: 1000ms, Special Time Limit:2500ms, Memory Limit:65536KB Total submit u ...

  3. HDU 4770 Lights Against Dudely 暴力枚举+dfs

    又一发吐血ac,,,再次明白了用函数(代码重用)和思路清晰的重要性. 11779687 2014-10-02 20:57:53 Accepted 4770 0MS 496K 2976 B G++ cz ...

  4. HDU 1015.Safecracker【暴力枚举】【8月17】

    Safecracker Problem Description === Op tech briefing, 2002/11/02 06:42 CST ===  "The item is lo ...

  5. CodeForces 742B Arpa’s obvious problem and Mehrdad’s terrible solution (暴力枚举)

    题意:求定 n 个数,求有多少对数满足,ai^bi = x. 析:暴力枚举就行,n的复杂度. 代码如下: #pragma comment(linker, "/STACK:1024000000 ...

  6. 2014牡丹江网络赛ZOJPretty Poem(暴力枚举)

    /* 将给定的一个字符串分解成ABABA 或者 ABABCAB的形式! 思路:暴力枚举A, B, C串! */ 1 #include<iostream> #include<cstri ...

  7. 51nod 1116 K进制下的大数 (暴力枚举)

    题目链接 题意:中文题. 题解:暴力枚举. #include <iostream> #include <cstring> using namespace std; ; ; ch ...

  8. Codeforces Round #349 (Div. 1) B. World Tour 最短路+暴力枚举

    题目链接: http://www.codeforces.com/contest/666/problem/B 题意: 给你n个城市,m条单向边,求通过最短路径访问四个不同的点能获得的最大距离,答案输出一 ...

  9. bzoj 1028 暴力枚举判断

    昨天梦到这道题了,所以一定要A掉(其实梦到了3道,有两道记不清了) 暴力枚举等的是哪张牌,将是哪张牌,然后贪心的判断就行了. 对于一个状态判断是否为胡牌,1-n扫一遍,然后对于每个牌,先mod 3, ...

随机推荐

  1. 初始化Git的配置

    如何使用Git上传项目代码到github http://blog.csdn.net/llf369477769/article/details/51917557

  2. JavaScript之闭包

    JavaScript之闭包 在JavaScript中,闭包恐怕是很多人不能理解的一个概念了,甚至很多人也会把闭包和匿名函数混淆. 闭包是有权访问另一个函数作用域中的变量的函数.首先要明白的就是,闭包是 ...

  3. 匿名函数:Lambda表达式和匿名方法

    匿名函数一个"内联"语句或表达式,可在需要委托类型的任何地方使用.可以使用匿名函数来初始化命名委托,或传递命名委托(而不是命名委托类型)作为方法参数. 共有两种匿名函数: Lamb ...

  4. asp.net json 与xml 的基础事例

    //json序列化和反序列化 using System.Runtime.Serialization.Json; public static string JsonSerializer<T> ...

  5. spark 读取 elasticsearch数据

    –master spark://10.8.2.100:7077 –jars /usr/local/spark-1.5.2/lib/elasticsearch-hadoop-2.1.1.jar

  6. 横竖屏切换时,Activity的生命周期

    横竖屏切换时,Activity的生命周期 1.新建一个Activity,并把各个生命周期打印出来 2.运行Activity,得到如下信息 onCreate-->onStart-->onRe ...

  7. NodeJS

    http://nodejs.org/ http://www.nodebeginner.org/index-zh-cn.html Javascript Engines http://www.sencha ...

  8. ecshop商品-》购买记录

    注意事项:{insert name='bought_notes' id=$id}   有了产品ID一切都好说 html代码 <!-- #BeginLibraryItem "/libra ...

  9. php构造函数连接数据库

    index.php require_once("mysql.config.php"); require_once("mysql.class.php"); ech ...

  10. js日历插件 中文、英文日历

    日历插件 来源网站:http://www.cnblogs.com/yank/archive/2008/08/14/1267746.html 六款英文日历 http://www.bobd.cn/desi ...