hnu 12886 Cracking the Safe
来源:互联网 发布:淘宝关注链接怎样设置 编辑:程序博客网 时间:2024/04/29 08:09
2014第八场比赛相对来说比较水 没什么好说的题 在这贴一个算24的板子吧。。。。直接暴力啊 注意精度问题
#include<iostream>#include<cmath>#include<cstdio>using namespace std;int a[4];int b[24][4]={{0,1,2,3},{0,1,3,2},{0,2,1,3},{0,2,3,1},{0,3,1,2},{0,3,2,1}, {1,0,2,3},{1,0,3,2},{1,2,0,3},{1,2,3,0},{1,3,0,2},{1,3,2,0}, {2,1,0,3},{2,1,3,0},{2,0,1,3},{2,0,3,1},{2,3,1,0},{2,3,0,1}, {3,1,2,0},{3,1,0,2},{3,2,1,0},{3,2,0,1},{3,0,1,2},{3,0,2,1}};double yunsuan(double x,double y,int h){ if(h==0) return (x+y); if(h==1) return (x-y); if(h==2) return (x*y); if(h==3) return (x*1.0/y);}double pd1(int i,int j,int k,int l){ double pd; pd=yunsuan(1.0*a[b[i][0]],1.0*a[b[i][1]],j); pd=yunsuan(pd,1.0*a[b[i][2]],k); pd=yunsuan(pd,1.0*a[b[i][3]],l); return pd;}double pd2(int i,int j,int k,int l){ double pd,pdd; pd=yunsuan(1.0*a[b[i][0]],1.0*a[b[i][1]],j); pdd=yunsuan(1.0*a[b[i][2]],1.0*a[b[i][3]],k); pd=yunsuan(pd,pdd,l); return pd;}double pd3(int i,int j,int k,int l){ double pd; pd=yunsuan(1.0*a[b[i][1]],1.0*a[b[i][2]],j); pd=yunsuan(pd,1.0*a[b[i][3]],k); pd=yunsuan(1.0*a[b[i][0]],pd,l); return pd;}double pd4(int i,int j,int k,int l){ double pd; pd=yunsuan(1.0*a[b[i][1]],1.0*a[b[i][2]],j); pd=yunsuan(1.0*a[b[i][0]],pd,k); pd=yunsuan(pd,1.0*a[b[i][3]],l); return pd;}double pd5(int i,int j,int k,int l){ double pd; pd=yunsuan(1.0*a[b[i][2]],1.0*a[b[i][3]],j); pd=yunsuan(1.0*a[b[i][1]],pd,k); pd=yunsuan(1.0*a[b[i][0]],pd,l); return pd;}char fuhao(int h){ if(h==0) return '+'; if(h==1) return '-'; if(h==2) return '*'; if(h==3) return '/';}int main(){ int tc; scanf("%d",&tc); while(tc--) { int i,j,k,l; scanf("%d%d%d%d",&a[0],&a[1],&a[2],&a[3]); int flag=1; for(i=0;i<24&&flag;i++) for(j=0;j<4&&flag;j++) for(k=0;k<4&&flag;k++) for(l=0;l<4&&flag;l++) { if (abs(pd1(i,j,k,l)-24)<0.001) {printf("YES\n"); flag=0; break;} if (abs(pd2(i,j,k,l)-24)<0.001) {printf("YES\n"); flag=0; break;} if (abs(pd3(i,j,k,l)-24)<0.001) {printf("YES\n"); flag=0; break;} if (abs(pd4(i,j,k,l)-24)<0.001) {printf("YES\n"); flag=0; break;} if (abs(pd5(i,j,k,l)-24)<0.001) {printf("YES\n"); flag=0; break;} } if(flag) printf("NO\n"); } return 0;}
原版被我改了 原版中是把把算24具体的例子给出来的 感觉在ACM比赛中不太现实 就给这个判断四个数能不能通过计算得到24的吧
0 0
- hnu 12886 Cracking the Safe
- 暴力枚举 + 24点 --- hnu : Cracking the Safe
- 753. Cracking the Safe
- LWC 64: 753. Cracking the Safe
- 湖大训练赛8 Cracking the Safe(24点的游戏)
- CodeForces 42C Safe cracking 规律题
- Cracking the Coding Interview
- 《Cracking the coding interview》
- Cracking The Coding Interview
- Cracking the coding interview
- cracking the interview
- Cracking the coding interview
- B-Cracking the Code
- HNU ACM: Cheering up the Cows (kruscal)
- hnu oj The Queen's English
- hnu 13052 What does the fox say?
- Cracking the Windows File Protection
- zoj 1087 Cracking the Code
- PerformanceCounter详解,使用方法
- 深度优先搜索(DFS)与广度优先搜索(BFS)
- Linux.
- Tornado编程实践建议(转)
- Maze Exploration - UVa 784 搜索
- hnu 12886 Cracking the Safe
- 如何发表论文
- 问题发个任务看完该户口问题
- C# 对硬件的控制
- 动态代理和AOP01
- 「捞」charAt() //返回在指定位置的字符 20140809 ①文本处理
- 微信分享给朋友及朋友圈JS代码
- 动态代理和AOP02
- etreyghjgfhgfhhcfdhtukj回家高科技