NKOJ P1388 算24点(10.15.2017)
来源:互联网 发布:windows7 iso for mac 编辑:程序博客网 时间:2024/06/07 20:39
题目导引:http://oi.nks.edu.cn/zh/Problem/Details/1388
问题描述
几十年前全世界就流行一种数字游戏,至今仍有人乐此不疲.在中国我们把这种游戏称为“算24点”。您作为游戏者将得到4个1~9之间的自然数作为操作数,而您的任务是对这4个操作数进行适当的算术运算,要求运算结果等于24。
您可以使用的运算只有:+,-,*,/,您还可以使用()来改变运算顺序。注意:所有的中间结果须是整数,所以一些除法运算是不允许的(例如,(2*2)/4是合法的,2*(2/4)是不合法的)。下面我们给出一个游戏的具体例子:
若给出的4个操作数是:1、2、3、7,则一种可能的解答是1+2+3*7=24。
输入格式
只有一行,四个1到9之间的自然数。
输出格式
如果有解的话,只要输出"yes"
如果没有解则输出“No answer!”
样例输入
1 2 3 7
样例输出
yes
输出说明:
2+1=3
7*3=21
21+3=24
楼主最开始看到这道题的时候也写了一跳,觉得这道题有点恐怖,毕竟24点运算+-*/要分级运算,但是后来想了想,其实也就是一道dfs的裸题,注意还原现场,基本上就是一道裸题。
题目比较简单,如果题目稍微难一点还可以将符合条件的运算按照一定条件输出,这个处理表达式就会更加麻烦一些。
废话不多说,直接上代码:
#includeint Num[5];bool Mark=0,Used[5];//mark表示是否能得到24并且恰好用完4个数字;used[i]表示第i张卡片是否使用; void DFS(int alr,int Sum)//alr表示已经讨论到第alr个数;Sum表示前alr个数的运行结果 ; {if(Mark==1)return;//如果mark为1表示已得到答案,结束所有搜索; else{if(alr==4&&Sum==24)//判断是否得到答案 { Mark=1;return;//得到答案并结束当前搜索 }for(int i=1;i<=4;i++)if(Used[i]==0)//Used[i]==0表示第i张卡片没有使用,进行搜索 {Used[i]=1;//使用第i张卡片 DFS(alr+1,Sum+Num[i]);//搜索 DFS(alr+1,Sum-Num[i]);//搜索 DFS(alr+1,Sum*Num[i]);//搜索 if(Sum%Num[i]==0) DFS(alr+1,Sum/Num[i]);//先判断是否能被整除,例如7/3不符合规则 Used[i]=0;//还原 }}}int main(){for(int i=1;i<=4;i++) scanf("%d",&Num[i]);for(int i=1;i<=4;i++) DFS(1,Num[i]);//搜索 if(Mark==1)printf("yes");else printf("No answer!");return 0; }
阅读全文
0 0
- NKOJ P1388 算24点(10.15.2017)
- 洛谷p1388算式(dp)
- NKOJ 3213 牧草鉴赏家(Tarjan缩点+最长路)
- NKOJ P1088 追牛(10.16.2017)
- NKOJ 2784 (APIO 2013) 道路费用(最小生成树+缩点)
- 【题】【图论(割点)】NKOJ 3648 嗅探器
- NKOJ-1979 投票<最大独立点集>
- NKOJ 4087 (SDOI 2017)硬币游戏(高斯消元)
- NKOJ 4038(CQOI 2017) 小Q的棋盘(贪心)
- NKOJ 3847 马云 (贪心)
- (2017夏令营CONTEST4)NKOJ 3823 水果怪 (组合数)
- (2017夏令营CONTEST4) NKOJ 3824 解密游戏(trie,dp)
- NKOJ 4042 (CQOI 2017) 老C的方块(最小割+染色)
- NKOJ 4043 (CQOI 2017) 老C的键盘 (树形DP)
- NKoj 2118 Handy Service(计算几何)
- NKOJ 1987 手机游戏(高斯消元)
- NKOJ 1314 爬山(背包dp)
- NKOJ 2244 奶牛阵列(KMP+Hash)
- Hibernate和MyBatis的区别比较
- 现在,发挥你的优势
- 急需你的意见:句子迷图文日签投票
- [Vue warn]: Error compiling template Component template requires a root element, rather than just te
- 互联网分层架构之-DAO与服务化
- NKOJ P1388 算24点(10.15.2017)
- Makefile文件
- esp8266开发
- structs2的运行机制
- 卷积神经网络中的“卷积”
- 可怕!Facebook竟能识别出性工作者!你怎么看?
- 视频 | 智能餐桌中日大PK,谁的脑洞更大?
- Python超过R,成为数据科学和机器学习的首选语言!
- 171013 逆向-Reversing.kr(AutoHotKey2)