hiho一下 第九十八周 搜索一·24点
题目1 : 搜索一·24点
描述
周末,小Hi和小Ho都在家待着。
在收拾完房间时,小Ho偶然发现了一副扑克,于是两人考虑用这副扑克来打发时间。
小Ho:玩点什么好呢?
小Hi:两个人啊,不如来玩24点怎么样,不靠运气就靠实力的游戏。
小Ho:好啊,好啊。
<经过若干局游戏之后>
小Ho:小Hi,你说如果要写个程序来玩24点会不会很复杂啊?
小Hi:让我想想。
<过了几分钟>
小Hi:我知道了!其实很简单嘛。
输入
第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解题思路
数据量不大,所以可以直接暴力枚举,4个数字,3个操作运算符,4个数字共有4!=24中可能,3个操作符共有4^3 共64种,因为有多种优先级次序,一次枚举。
(A#B)#(C#D)
((A#B)#C)#D
A#(B#(C#D))
(A#(B#C))#D
A#((B#C)#D)代码:
#include<iostream> using namespace std; double number[];
double nowNumber[];
char ops[];
char opType[] = { '+', '-', '*', '/' };
bool used[]={false};
int num; double calc(double a, double b, char c){
double s = 0.0;
switch (c)
{
case '+': s = a + b;break;
case '-': s = a - b;break;
case '*': s = a*b;break;
case '/': if (b != ) s = b / a;break;
default: break;
}
return s;
} bool makeOperation(int depth){
if(depth>=){
if ( calc(calc(number[], number[],ops[]), calc(number[], number[],ops[]),ops[]) == //(A#B)#(C#D)
|| calc(calc(calc(number[],number[],ops[]),number[],ops[]),number[],ops[]) == //((A#B)#C)#D
|| calc(number[], calc(number[], calc(number[], number[], ops[]), ops[]), ops[]) == //A#(B#(C#D))
|| calc(calc(number[], calc(number[], number[], ops[]), ops[]), number[], ops[]) == //(A#(B#C))#D
|| calc(number[], calc(calc(number[], number[], ops[]), number[], ops[]), ops[]) == //A#((B#C)#D)
) return true;
else
return false;
} for(int i=;i<;i++){
ops[depth] = opType[i];
if (makeOperation(depth + ))
return true;
}
return false;
} bool makeNumber(int depth){
if(depth>=)
return makeOperation(); for(int i=;i<;i++){
if(!used[i]){
nowNumber[depth]=number[i];
used[i]=false; if(makeNumber(depth+))
return true; used[i]=false;
}
}
return false;
} int main(){
int n;
cin>>n; while(n--){
for (int i = ; i < ; i++)
cin >> number[i]; if (makeNumber())
cout << "Yes" << endl;
else
cout << "No" << endl;
}
return ;
}题解中给的思路是,引入“反-”和“反/”,运算符增加2种,优先级结合次序可以减少3中,效率更优。
hiho一下 第九十八周 搜索一·24点的更多相关文章
- hihocoder 九十八周 搜索一 24点
题目1 : 搜索一·24点 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 周末,小Hi和小Ho都在家待着. 在收拾完房间时,小Ho偶然发现了一副扑克,于是两人考虑用这副 ...
- hiho一下 第九十五周 数论四·扩展欧几里德
题目 : 数论四·扩展欧几里德 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho周末在公园溜达.公园有一堆围成环形的石板,小Hi和小Ho分别站在不同的石板上 ...
- hiho一下 第九十六周 数论五·欧拉函数
题目1 : 数论五·欧拉函数 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho有时候会用密码写信来互相联系,他们用了一个很大的数当做密钥.小Hi和小Ho约定 ...
- 达拉草201771010105《面向对象程序设计(java)》第十八周学习总结
达拉草201771010105<面向对象程序设计(java)>第十八周学习总结 实验十八 总复习 实验时间 2018-12-30 1.实验目的与要求 (1) 综合掌握java基本程序结构 ...
- 201771010126 王燕《面向对象程序设计(java)》第十八周学习总结
实验十八 总复习 实验时间 2018-12-30 1.实验目的与要求 (1) 综合掌握java基本程序结构: (2) 综合掌握java面向对象程序设计特点: (3) 综合掌握java GUI 程序设 ...
- 马昕璐 201771010118《面向对象程序设计(java)》第十八周学习总结
实验十八 总复习 实验时间 2018-12-30 1.实验目的与要求 (1) 综合掌握java基本程序结构: (2) 综合掌握java面向对象程序设计特点: (3) 综合掌握java GUI 程序设 ...
- 刘志梅 201771010115 《面向对象程序设计(java)》 第十八周学习总结
实验十八 总复习 实验时间 2018-12-30 1.实验理论知识 (1)第一个关键词:public称为访问修饰符,用于控制程序的其他部分对代码的访问级别. 第二个关键词:class表明java程序中 ...
- 第十八周java实验作业
实验十八 总复习 实验时间 2018-12-30 1.实验目的与要求 (1) 综合掌握java基本程序结构: (2) 综合掌握java面向对象程序设计特点: (3) 综合掌握java GUI 程序设 ...
- 王颖奇 201771010129《面向对象程序设计Java》第十八周实验总结
实验十八 总复习 实验时间 2018-12-30 1.实验目的与要求 (1) 综合掌握java基本程序结构: (2) 综合掌握java面向对象程序设计特点: (3) 综合掌握java GUI 程序设 ...
随机推荐
- Java技术路线图
在技术方面无论我们怎么学习,总感觉需要提升自已不知道自己处于什么水平了.但如果有清晰的指示图供参考还是非常不错的,这样我们清楚的知道我们大概处于那个阶段和水平. Java程序员 高级特性 反射.泛型. ...
- C# 6.0部分新特性
Struct的默认构造函数和属性赋值 我看C# 6 introduce 提到这个功能.但vs2015搭载的NET4.6貌似还不支持这个.所以也不好判断. 属性赋值 /// <summary> ...
- WCF入门(9)
前言 上次搬家空调出了点问题,和修空调的师傅商量了一下,感觉还是讲理的. 今天又在公司基本没有任何存在感的过了一天,纠结...领导还不在... 前些天往手机里面放了几集WCF入门视频,今天用暴风影音看 ...
- JS函数表达式
导图
- Node on Mac 初步
安装node之前 1.之前在windows平台上安装node,直接下载一个安装文件得了.但是mac osx是基于unix架构的嘛,跟linux很像啊. 在linux上安装我们多习惯用命令行工具安装啊, ...
- 四则运算 Day2
元旦快乐篇 别人在过元旦,而我却在敲代码,说多了都是泪. 设计思路 1. 界面设计 程序运行时,跳出运行说明提示用户如何操作 用户阅读完说明后点击开始进入主界面,即操作界面,操作界面分为计时区,操作区 ...
- 虚拟机去混杂模式与 vlan in vxlan 特性
1. 去混杂模式 1.1 背景 混杂模式(Promiscuous Mode)是指一台机器能够接收所有经过它的数据流,而不论其目的地址是否是它.是相对于通常模式(又称“非混杂模式”)而言的. 这被网络管 ...
- 小结-Splay
参照陈竞潇学长的模板写的BZOJ 3188: #include<cstdio> #include<cstring> #include<algorithm> #def ...
- mysql JDBC URL格式
mysql JDBC URL格式如下: jdbc:mysql://[host:port],[host:port].../[database][?参数名1][=参数值1][&参数名2][=参 ...
- 【POJ 2484】A Funny Game
Description Alice and Bob decide to play a funny game. At the beginning of the game they pick n(1 &l ...