Openjudge---算24
来源:互联网 发布:易语言视频解析源码 编辑:程序博客网 时间:2024/06/05 04:19
1789:算24
总时间限制:
3000ms
内存限制:
65536kB
描述
给出4个小于10个正整数,你可以使用加减乘除4种运算以及括号把这4个数连接起来得到一个表达式。现在的问题是,是否存在一种方式使得得到的表达式的结果等于24。
这里加减乘除以及括号的运算结果和运算的优先级跟我们平常的定义一致(这里的除法定义是实数除法)。比如,对于5,5,5,1,我们知道5 * (5 – 1 / 5) = 24,因此可以得到24。又比如,对于1,1,4,2,我们怎么都不能得到24。
输入
输入数据包括多行,每行给出一组测试数据,包括4个小于10个正整数。最后一组测试数据中包括4个0,表示输入的结束,这组数据不用处理。
输出
对于每一组测试数据,输出一行,如果可以得到24,输出“YES”;否则,输出“NO”。
样例输入
5 5 5 11 1 4 20 0 0 0
样例输出
YESNO
状态: Accepted
#include<cstdio>#include<cstdlib>#include<cstring>#include<algorithm>#include<iostream>using namespace std;const double eps=0.00000001;double a[4];int v[4];double mabs(double x)//mabs取绝对值 {return x>0?x:-x;}int dfs(int x){ if (x==3) { for (int i=0;i<4;i++) if (!v[i] && mabs(a[i]-24.0)<eps) return 1; return 0; } for (int i=0;i<4;i++) if (!v[i]) for (int j=i+1;j<4;j++)//区别 if (!v[j]) { v[j]=1; double tmp=a[i],tmpp=a[j]; a[i]=tmp+tmpp; if (dfs(x+1)) return 1; a[i]=tmp-tmpp; if (dfs(x+1)) return 1; a[i]=tmpp-tmp; if (dfs(x+1)) return 1; a[i]=tmpp*tmp; if (dfs(x+1)) return 1; a[i]=tmpp/tmp; if (dfs(x+1)) return 1; a[i]=tmp/tmpp; if (dfs(x+1)) return 1; a[i]=tmp; v[j]=0; } return 0;}int main(){ while (1) { for (int i=0;i<4;i++) scanf("%lf",&a[i]); if (!a[0]) break; memset(v,0,sizeof(v)); if (dfs(0)) printf("YES\n"); else printf("NO\n"); } return 0;}
阅读全文
1 0
- OpenJudge- 1789:算24
- Openjudge---算24
- [OpenJudge-NOI]算24 Dfs
- OpenJudge 百练 2787 算24
- 【Noi OpenJudge】 算24 解题报告
- OpenJudge 2787 算24(dfs)
- 【OpenJudge 1789】算24(枚举)
- OpenJudge
- OpenJudge百炼-2787-算24-C语言-枚举
- openjudge 1.5 24:正常血压
- Openjudge 1.13 24:打印月历
- [OpenJudge]胡
- OPENJUDGE LIST
- OPENJUDGE SET
- openjudge 迷宫
- openjudge 2764
- 【openjudge】Minecraft
- 【openjudge】登山
- .net 中 ActionResult 返回类型
- uploadify的uploadify.swf没有效果
- Android View绘制机制基础(三)
- 搭建Hadoop分布式开发环境(二)
- MOOC清华《程序设计基础》第5章:求n的阶乘(用枚举法做)
- Openjudge---算24
- cts verifier Policy Serialization Test
- CSS之Multi-columns的列数和列宽
- 全面深入分析TCP的TIME_WAIT和CLOSE_WAIT(上)
- Unity3D 中 Generic 动画导入设置和 Root Motion 之间的关系
- bzoj4810 [ YNOI2017 ] -- 莫队+bitset
- shiro配置报错问题
- OpenGL学习笔记--freeglut
- 求对弈获胜概率的问题