hdu 1427 24点暴力dfs
来源:互联网 发布:软件著作权登记有啥用 编辑:程序博客网 时间:2024/05/16 06:59
点击打开链接
#include <iostream>#include <cstdio>#include <algorithm>using namespace std;int num;int a[4],x;const int inf=1<<10; // 括号改变的运算符的优先级所以 //a@b@c@d 符号的全排列有 3!种可能 由于数字可以调换 ((a@b)@c) @d 等价于 a @ ((b@c)@d ) 要想使(i,j,k,l) 的优先级为 a @ ((b@c)@d ) 等价于 j,k,l,i 在 ((a@b)@c) @d 所以这种情况保留一个就好 int calc(int op,int b,int c) {switch(op){case 1: return b+c;case 2: return b-c;case 3: return b*c;case 4: if(c!=0&&b%c==0) return b/c;else return inf;}}bool fun1() // ((a@b)@c)@d{int i,j,k;int k1,k2,ans;for(i=1;i<=4;i++){k1=calc(i,a[0],a[1]);if(k1==inf) continue;for(j=1;j<=4;j++){k2=calc(j,k1,a[2]);if(k2==inf) continue;for(k=1;k<=4;k++){ans=calc(k,k2,a[3]);if(ans==inf) continue;if(ans==24)return 1;}}}return 0;}bool fun2() // (a@b)@(c@d){int i,j,k;int k1,k2,ans;for(i=1;i<=4;i++){k1=calc(i,a[0],a[1]);if(k1==inf) continue;for(j=1;j<=4;j++){k2=calc(j,a[2],a[3]);if(k2==inf) continue;for(k=1;k<=4;k++){ans=calc(k,k1,k2);if(ans==inf) continue;if(ans==24)return 1;}}}return 0;}bool fun3() // (a@(b@c))@d{int i,j,k;double k1,k2,ans;for(i=1;i<=4;i++){k1=calc(i,a[1],a[2]);if(k1==inf) continue;for(j=1;j<=4;j++){k2=calc(j,a[0],k1);if(k2==inf) continue;for(k=1;k<=4;k++){ans=calc(k,k2,a[3]);if(ans==inf) continue;if(ans==24)return 1;}}}return 0;}int main(){char b[5];int t,i;while(1){int f=0;for(i=0;i<4;i++){if(scanf("%s",b)==EOF) return 0;if(b[0]=='A'){a[i]=1;continue;}if(b[0]=='J'){a[i]=11;continue;}if(b[0]=='Q'){a[i]=12;continue;}if(b[0]=='K'){a[i]=13;continue;}if(b[0]=='1'&&b[1]=='0')//{a[i]=10;continue;}a[i]=b[0]-'0';}sort(a,a+4);do{ //生成数字的全排列 if(fun1()){f=1;break;}if(fun2()){f=1;break;}if(fun3()){f=1;break;}}while(next_permutation(a,a+4));if(f){cout<<"Yes"<<endl;}else{cout<<"No"<<endl;}}return 0;}
0 0
- hdu 1427 24点暴力dfs
- HDU 1427 速算24点 枚举+dfs
- [HDU 1427]速算24点(DFS暴搜)
- HDU ACM 1427 速算24点 [DFS]
- HDU 1427 速算24点(DFS) *
- 【HDU 1427 计算24点 DFS】
- HDU 1427 速算24点(dfs)
- hdu 4739 dfs+暴力
- HDU 5706 暴力dfs
- HDU 5547 (DFS暴力)
- [ACdream]哗啦啦族的24点游戏[dfs][暴力][精度]
- hdu 1015 (DFS,暴力)
- hdu 1015 Safecracker 暴力dfs
- hdu 5706 GirlCat【暴力DFS】
- hdu 2616 dfs回溯暴力
- HDU 1045(二分图求最小点覆盖问题;dfs暴力)
- hdu 3274 city planning 暴力+DFS
- HDU 1045Fire Net(暴力DFS)
- CodeForces 400A Inna and Choose Options
- 第十四周项目—阅读并运行程序,解释程序执行得到的结果(3)
- DBA学习笔记 - chapter 4 数据字典和控制文件(1)
- Android__Activity
- grails指定端口运行工程
- hdu 1427 24点暴力dfs
- 网站开发流程
- Windows中命令行收集
- ios UILabel 用法的总结
- idea代码调试debug
- CodeForces 632C
- easyui中combobox设置默认值的方法
- TCP 客户端 服务端详细代码
- 基于java最短路径算法公交查询系统的设计与实现