时间限制:10000ms
单点时限:1000ms
内存限制:256MB

描述

周末,小Hi和小Ho都在家待着。

在收拾完房间时,小Ho偶然发现了一副扑克,于是两人考虑用这副扑克来打发时间。

小Ho:玩点什么好呢?

小Hi:两个人啊,不如来玩24点怎么样,不靠运气就靠实力的游戏。

小Ho:好啊,好啊。

<经过若干局游戏之后>

小Ho:小Hi,你说如果要写个程序来玩24点会不会很复杂啊?

小Hi:让我想想。

<过了几分钟>

小Hi:我知道了!其实很简单嘛。

提示:24点

输入

第1行:1个正整数, t,表示数据组数,2≤t≤100。

第2..t+1行:4个正整数, a,b,c,d,1≤a,b,c,d≤10。

输出

第1..t行:每行一个字符串,第i行表示第i组能否计算出24点。若能够输出"Yes",否则输出"No"。

样例输入
2
5 5 5 1
9 9 9 9
样例输出
Yes
No
#include <iostream>
#include <string.h>
#include <math.h>
using namespace std;
const double EPS=1.0e-2;
bool used[];
int number[];
int oneNumber[];
char ops[];
char opType[]={'+','-','*','/','#','$'}; double cal(double x,double y,char op)
{
switch(op)
{
case '+':return x+y;
case '-':return x-y;
case '*':return x*y;
case '/':return x/y;
case '#':return y-x;
case '$':return y/x;
}
}
double calType1()
{
double x=cal((double)oneNumber[],(double)oneNumber[],ops[]);
double y=cal(x,(double)oneNumber[],ops[]);
return cal(y,(double)oneNumber[],ops[]);
}
double calType2()
{
double x=cal((double)oneNumber[],(double)oneNumber[],ops[]);
double y=cal((double)oneNumber[],(double)oneNumber[],ops[]);
return cal(x,y,ops[]);
}
bool makeOperation(int dep)
{
if(dep==)
{
if(fabs(calType1()-24.0)<EPS)
{
return true;
}
if(fabs(calType2()-24.0)<EPS)
{
return true;
}
return false;
}
for(int i=;i<;i++)
{
ops[dep]=opType[i];
if(makeOperation(dep+))
{
return true;
}
}
return false;
} bool makeNumber(int dep)
{
if(dep==)
{
return makeOperation();
}
for(int i=;i<;i++)
{
if(!used[i])
{
used[i]=true;//注意不是number[i]
oneNumber[dep]=number[i];
if(makeNumber(dep+))
{
return true;
}
used[i]=false;
}
}
return false;
}
int main()
{
int T;
cin>>T;
while(T--)
{
for(int i=;i<;i++)
{
cin>>number[i];
}
memset(used,false,sizeof(used));
if(makeNumber())
{
cout<<"Yes"<<endl;
}
else
{
cout<<"No"<<endl;
}
}
return ;
}

hihoCoder1304:24点的更多相关文章

  1. Fedora 24中的日志管理

    Introduction Log files are files that contain messages about the system, including the kernel, servi ...

  2. CSharpGL(24)用ComputeShader实现一个简单的图像边缘检测功能

    CSharpGL(24)用ComputeShader实现一个简单的图像边缘检测功能 效果图 这是红宝书里的例子,在这个例子中,下述功能全部登场,因此这个例子可作为使用Compute Shader的典型 ...

  3. 【趣味分享】C#实现回味童年的24点算法游戏

    一.24点游戏玩法规则效果展示 1.初始化界面 2.开始游戏界面 3.游戏超时界面 4.查看答案界面 5.答对界面 6.答错界面 7.计算表达式的验证界面 8.一副牌算完开始新一副牌界面 到这里24点 ...

  4. C#开发微信门户及应用(24)-微信小店货架信息管理

    在前面微信小店系列篇<C#开发微信门户及应用(22)-微信小店的开发和使用>里面介绍了一些微信小店的基础知识,以及<C#开发微信门户及应用(23)-微信小店商品管理接口的封装和测试& ...

  5. [MySQL Reference Manual] 24 MySQL sys框架

    24 MySQL sys框架 24 MySQL sys框架 24.1 sys框架的前提条件 24.2 使用sys框架 24.3 sys框架进度报告 24.4 sys框架的对象 24.4.1所有sys下 ...

  6. mysql 5.6.24安装实例

    安装前准备工作: 1)编辑PATH路径 vim /etc/profile PATH=/home/mysql/bin:/home/mysql/lib:$PATH export PATH 2)生效PATH ...

  7. C语言-纸牌计算24点小游戏

    C语言实现纸牌计算24点小游戏 利用系统时间设定随机种子生成4个随机数,并对4个数字之间的运算次序以及运算符号进行枚举,从而计算判断是否能得出24,以达到程序目的.程序主要功能已完成,目前还有部分细节 ...

  8. .NET开发人员必看:提高ASP.NET Web应用性能的24种方法和技巧

    那性能问题到底该如何解决?以下是应用系统发布前,作为 .NET 开发人员需要检查的点. 1.debug=「false」 当创建 ASP.NET Web应用程序,默认设置为「true」.开发过程中,设置 ...

  9. [.net 面向对象程序设计进阶] (24) 团队开发利器(三)使用SVN多分支并行开发(下)

    [.net 面向对象程序设计进阶] (24) 团队开发利器(三)使用SVN多分支并行开发(下) 本篇导读: 接上篇继续介绍SVN的高级功能,即使用分支并行开发.随着需求的不断变更,新功能的增加.特别是 ...

随机推荐

  1. 20165101刘天野 2017-2018-2 《Java程序设计》第8周学习总结

    #20165101刘天野 2017-2018-2 <Java程序设计>第8周学习总结 教材学习内容总结 第十二章Java多线程机制 一.进程与线程 1.1.任务调动 大部分操作系统(如Wi ...

  2. relativePath

    比如: com.tenace tenace 2.0.1 ../pom.xml //刚开始无此句 com.spider engine 2.6.0-SNAPSHOT tenace作为pom项目已经发布至r ...

  3. springmvc异常处理(非注解与注解)

    1.异常 程序中的异常一般分为两类:预期异常,运行时异常.前者是我们可预知的,我们一般通过捕获和抛出方式处理这些异常.后者主要通过代码规范.测试等手段来减少异常的发生.一般,我们在系统的DAO.Ser ...

  4. 深入剖析JDK动态代理源码实现

    动态代理.静态代理优缺点优点:业务类只需要关注业务逻辑本身,保证了业务类的重用性.这是代理的共有优点.动态代理只有在用到被代理对象的时候才会对被代理类进行类加载. 而静态代理在编译器就已经开始占内存了 ...

  5. 用简单的反射优化代码(动态web项目)

    在动态web项目中,没有使用框架时,只是简单的jsp访问servlet实现增删改查, 无论是哪个方法都需要经过Servlet中的doGet()方法或doPost()方法,我们可以在链接中附带参数进行区 ...

  6. JavaWeb -- sevlet 监听器

    1.三个域对象的监听(创建和销毁) servletContext,  session, request 监听器 ServletContext监听器: public class MyServletCon ...

  7. Android框架之路——GreenDao3.2.2的使用

    一.简介 GreenDAO是一个开源的安卓ORM框架,能够使SQLite数据库的开发再次变得有趣.它减轻开发人员处理低级数据库需求,同时节省开发时间. SQLite是一个令人敬畏的内嵌的关系数据库,编 ...

  8. 本地的html服务

    本地的调试的时候, 我们服务器返回的cookie就会变的失效,因为你的本地服务器的域名不太对.

  9. ipconfig | find /i "ipv4"

    C:\Users\Bob>ipconfig|find /i "IPv"   本地链接 IPv6 地址. . . . . . . . : fe80::d495:6e3:6368 ...

  10. 51nod 1040 欧拉函数

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1040 1040 最大公约数之和 题目来源: rihkddd 基准时间限制 ...