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, ...
随机推荐
- C#调用WebService实现天气预报
http://zhangkui.blog.51cto.com/1796259/497324/ 本文使用Winform (C#)调用互联网上公开的WebServices(http://www.webxm ...
- Objective-C学习笔记类目、协议
不是所有的方法都可以被覆盖的!比如:intValue就不能被覆盖!! 原因正在查找中! 别人的电脑上却可以! 类目.h件 #import <Foundation/Foundation.h> ...
- PHPCMS修改管理栏目下的模版设置的注意
要确保文件名后缀的统一才能被后台所找到 首页的必须是index开头.html结尾栏目首页的模板必须category开头.html结尾 -------例如导航栏上面的栏目页面 列表页的模板必须list开 ...
- bootstrap标签引入地址
http://www.bootcdn.cn/bootstrap/ <link rel="stylesheet" href="http://apps.bdimg.co ...
- ORACLE查看并修改session和连接最大数
第一步,在cmd命令行,输入sqlplus 第二步,根据提示输入用户名与密码 1. 查看processes和sessions参数 SQL> show parameter processes NA ...
- 9月23日JavaScript作业----日期时间选择
作业二:日期时间选择 <div style="width:600px; height:100px;"> <select id="year"&g ...
- Hadoop-2.7.3 问题收集
问题1:在DFS Lcation 上不能多文件进行操作: 在Hadoop上的每个节点上修改该文件 conf/mapred-site.xml 增加: <property> < ...
- background属性
background: url(images/01.jpg) 0 10px; 效果: background: url(images/01.jpg) 0 -10px; 效果: *注释:10px 是网上去 ...
- Redis学习——链表源码分析
0. 前言 Redis 中的链表是以通用链表的形式实现的,而对于链表的用途来说,主要的功能就是增删改查,所以对于查找来说,redis其提供了一个match函数指针,用户负责实现其具体的匹配操作,从而实 ...
- Winform打包工具SetupFactory 9 的使用
写了个WinForm的小程序..以前没打过包..只是直接把Bin里的东西复制出来使用..自己使用是足够.但是发给别人毕竟不太好看(不牛逼)..所以就想着打包.. Vs2012自带的有打包的功能..相信 ...