HDU1427速算24點(dfs)
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<queue>
#include<stack>
#include<vector>
using namespace std;
int a[10];
bool dfs(int x)
{
if(x==3)
{
if(24==a[x])
return true;
else
return false;
}
int i,j;
for(i=x;i<4;i++)
{
for(j=i+1;j<4;j++)
{
int cc=a[i];
int dd=a[j];
a[i]=a[x];
a[j]=cc+dd;
if(dfs(x+1))
return true;
a[j]=cc*dd;
if(dfs(x+1))
return true;
a[j]=cc-dd;
if(dfs(x+1))
return true;
a[j]=dd-cc;
if(dfs(x+1))
return true;
if(dd!=0&&cc%dd==0)
{
a[j]=cc/dd;
if(dfs(x+1))
return true;
}
if(cc!=0&&dd%cc==0)
{
a[j]=dd/cc;
if(dfs(x+1))
return true;
}
a[i]=cc;
a[j]=dd;
}
}
return false;
}
int Change(char* ch)
{
if(ch[0]=='A')
return 1;
else if(ch[0]=='J')
return 11;
else if(ch[0]=='Q')
return 12;
else if(ch[0]=='K')
return 13;
else if(strlen(ch)==2)
return 10;
else
return ch[0]-'0';
}
int main()
{
char c[10];
while (~scanf("%s",c))
{
a[0]=Change(c);
for(int i=1;i<4;i++)
{
scanf("%s",c);
a[i]=Change(c);
}
if(dfs(0))
printf("Yes\n");
else
printf("No\n");
memset(a, 0, sizeof(a));
}
return 0;
}
相關文章
- HDU 1427-速算24點(DFS)
- 撲克牌速算24 -窮舉(JavaScript)JavaScript
- leetcode 679. 24 Game(遊戲24點)LeetCodeGAM遊戲
- dfs列印有向圖的起點到終點路徑
- DFS
- 24點 Pascal大暴力程式
- 每天進步一點點 2020/09/24
- dfs序
- DFS樹
- dfs技巧
- Python實現24點遊戲Python遊戲
- JS實現24點遊戲JS遊戲
- 深搜dfs
- Tempter of the Bone(DFS)
- 你來寫,“Calca”來快速算出計算結果
- iOS 小遊戲專案——數字速算升級版iOS遊戲
- 24-分析要點:怎麼辦(2)
- Python秒算24點,行還是不行?Python
- DAG bfs + dfs 126,
- 樹的DFS序
- Prime Ring Problem (dfs)
- LightOJ1074 Extended Traffic【SPFA+DFS 標記負環的結點】
- DFS序例題+感受
- DFS入門筆記筆記
- 圖的dfs_euler
- DFS演算法原理演算法
- DFS實現拓撲排序排序
- DFS剪枝最佳化策略
- 關於元素排列的DFS
- DFS(深度優先搜尋)
- 【題目整理】dfs入門
- 9*9的數獨(dfs)
- P1219 八皇后(dfs)
- bzoj4500: 矩陣(dfs)矩陣
- PHP歷理 做一個計算24點的功能PHP
- dfs的return時機問題
- dfs時間複雜度分析時間複雜度
- 聊聊演算法——BFS和DFS演算法