【OpenJudge 1789】算24(枚举)
2017-09-06 21:34
183 查看
传送门biu~
这题需要神(S)犇(B)的小技巧
我们每次取出两个数,并用加减乘除合并它们
当最后剩下一个数的时候,看看它是不是等于24就可以了(注意精度问题)
这题需要神(S)犇(B)的小技巧
我们每次取出两个数,并用加减乘除合并它们
当最后剩下一个数的时候,看看它是不是等于24就可以了(注意精度问题)
#include<bits/stdc++.h> #define DEINF -2147483647 using namespace std; bool flag; double a[5]; double ys(double x,double y,int num) { if(num==1) return x+y; else if(num==2) return x-y; else if(num==3) return x*y; else if(num==4) return x/y; } void dfs(int x) { sort(a+1,a+5); if(flag) return; if(x==4) { if(abs(a[4]-24)<0.001) flag=1; return; } double b[5];for(int i=1;i<=4;++i)b[i]=a[i]; for(int i=x;i<=4;++i) { for(int j=x;j<=4;++j) { if(i==j) continue; for(int k=1;k<=4;++k) { a[i]=ys(a[i],a[j],k); a[j]=DEINF; dfs(x+1); for(int i=1;i<=4;++i)a[i]=b[i]; } } } } int main() { while(~scanf("%lf%lf%lf%lf",&a[1],&a[2],&a[3],&a[4]) && a[1]) { flag=0; dfs(1); printf(flag?"YES\n":"NO\n"); } return 0; }
相关文章推荐
- OpenJudge- 1789:算24
- Openjudge 2811 熄灯问题 枚举 爆搜
- [网络流24题]魔术球问题 贪心||枚举答案+最小路径覆盖
- 《从零开始学Swift》学习笔记(Day 24)——枚举
- noi1789:算24——搜索
- Openjudge 2811 熄灯问题 枚举 爆搜
- ytu 1789:n皇后问题(水题,枚举)
- Openjudge 1.13 24:打印月历
- 洛谷 P2754 星际转移问题【网络流24题】【枚举答案+动态加边最大流】
- Openjudge 2811 熄灯问题 枚举 爆搜
- openjudge 1789算24 解析报告
- [noi 1789]算24
- Openjudge 2811 熄灯问题 枚举 爆搜
- Openjudge 2811 熄灯问题 枚举 爆搜
- 1789:算24
- Openjudge 2811 熄灯问题 枚举 爆搜
- 【Openjudge, NOI,枚举】1749数字方格
- Openjudge 2811 熄灯问题 枚举 爆搜
- 《从零开始学Swift》学习笔记(Day 24)——枚举(Day 24)——枚举
- OpenJudge 百练 2787 算24