博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【rqnoj 74】24点
阅读量:6876 次
发布时间:2019-06-26

本文共 1622 字,大约阅读时间需要 5 分钟。

题目描述

superwyh是一个非常疯狂的24点爱好者,空闲时总是自己拿出扑克来算24点,24点的规则很简单,就是给你4张扑克(从1至13,用A代替1,J代替11,Q代替12,K代替13)通过加减乘除来求得24,各位oier帮了superwyh好多忙,为了报答大家superwyh就和大家做个24点的游戏,superwyh给大家4张牌大家告诉superwyh能不能凑成24就行。

[renqing PS:这道题很easy,是送分的题]

输入格式4张牌的牌面(1<=n<=13)。 
输出格式如果能凑成输出”yes”反之输出”no”。 

样例输入

A 2 3 4

输出

yes

DP会Wa,就不粘代码了。

搜索AC

1 #include
2 #include
3 #include
4 #include
5 using namespace std; 6 string s;int a[5]; 7 bool used[5]; 8 bool dfs(int dep,double sum){ 9 if(dep==4){10 if(sum>23.999999&&sum<24.000001) return true;11 else return false;12 }13 else{14 for(int i=0;i<4;i++){15 if(!used[i]){16 used[i]=1;17 if(dfs(dep+1,sum+a[i])) return true;18 if(dfs(dep+1,sum-a[i])) return true;19 if(dfs(dep+1,a[i]-sum)) return true;20 if(sum!=0&&dfs(dep+1,sum*a[i])) return true;21 if(sum!=0&&dfs(dep+1,sum/a[i])) return true;22 if(sum!=0&&dfs(dep+1,a[i]/sum)) return true;23 used[i]=0;24 }25 }26 return false;27 }28 }29 int main(){30 for(int i=0;i<4;i++){31 cin>>s;32 if(s[0]=='A') a[i]=1;33 else if(s[0]=='J') a[i]=11;34 else if(s[0]=='Q') a[i]=12;35 else if(s[0]=='K') a[i]=13;36 else if(s[0]=='1'&&s[1]=='0') a[i]=10;37 else a[i]=s[0]-'0';38 }39 if(dfs(0,0)) printf("yes\n");40 else printf("no\n");41 return 0;42 }

转载于:https://www.cnblogs.com/Emine/p/7674544.html

你可能感兴趣的文章
JS中的发布订阅模式
查看>>
springmvc自定义视图
查看>>
MFC串口的编程 mscomm控件与SerialPort类
查看>>
NSThread基础使用
查看>>
Codeforces Round #287 (Div. 2) ABCDE
查看>>
【转载】读懂IL代码就这么简单(二)
查看>>
09-JS的事件流的概念(重点)
查看>>
有关inline-block
查看>>
文献随笔(九)
查看>>
git相关
查看>>
加入大型的js文件如jQuery文件,Eclipse会报错
查看>>
POJ 2763 (树链剖分+边修改+边查询)
查看>>
全局变量---只创建一次
查看>>
IOS APP上下黑边问题
查看>>
数位dp题集
查看>>
C# 汉字转拼音
查看>>
jquery实现复制的两种方式
查看>>
RPC远程过程调用
查看>>
C++文件操作(fstream)
查看>>
hdu1294 Rooted Trees Problem
查看>>