HDU - 1427 / UESTC - 1252 经典dfs
很好奇为什么hzwer那种稍改一下还是无法过样例,代码我没看出问题
换了一种用桶组合挑取两个数不断回溯的做法
这是HDU1427的代码,后者改一改就行了
#include<bits/stdc++.h>
#define rep(i,j,k) for(int i=j;i<=k;i++)
using namespace std;
int a[10];
int SET[10];
int dfs(int left){
if(left==1){
rep(i,1,4) if(~SET[i]){
return SET[i]==24;
}
return 0;
}
rep(i,1,4){
if(SET[i]==-1)continue;
rep(j,i+1,4){
if(SET[j]==-1)continue;
int a=SET[i],b=SET[j];
SET[i]=SET[j]=-1;
SET[i]=a+b;
if(dfs(left-1)) return 1;
SET[i]=a-b;
if(dfs(left-1)) return 1;
SET[i]=b-a;
if(dfs(left-1)) return 1;
SET[i]=a*b;
if(dfs(left-1)) return 1;
if(b&&a%b==0)SET[i]=a/b;
if(dfs(left-1)) return 1;
if(a&&b%a==0) SET[i]=b/a;
if(dfs(left-1)) return 1;
SET[i]=a;SET[j]=b;
}
}
return 0;
}
char s[7][10];
int main(){
while(cin>>s[1]>>s[2]>>s[3]>>s[4]){
rep(i,1,4){
if(s[i][0]=='A') a[i]=1;
else if(s[i][0]=='J') a[i]=11;
else if(s[i][0]=='Q') a[i]=12;
else if(s[i][0]=='K') a[i]=13;
else if(s[i][0]=='1'&&s[i][1]=='0') a[i]=10;
else a[i]=s[i][0]-'0';
}
rep(i,1,4) SET[i]=a[i];
memset(s,0,sizeof s);
if(dfs(4)) cout<<"Yes"<<endl;
else cout<<"No"<<endl;
}
return 0;
}
HDU - 1427 / UESTC - 1252 经典dfs的更多相关文章
- HDOJ/HDU 1241 Oil Deposits(经典DFS)
Problem Description The GeoSurvComp geologic survey company is responsible for detecting underground ...
- HDU - 1241 Oil Deposits 经典dfs 格子
最水的一道石油竟然改了一个小时,好菜好菜. x<=r y<=c x<=r y<=c x<=r y<=c x<=r y<=c #include ...
- hdu 1241 Oil Deposits(DFS求连通块)
HDU 1241 Oil Deposits L -DFS Time Limit:1000MS Memory Limit:10000KB 64bit IO Format:%I64d & ...
- hdu 1241:Oil Deposits(DFS)
Oil Deposits Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) Total ...
- HDU 1003 Max Sum --- 经典DP
HDU 1003 相关链接 HDU 1231题解 题目大意:给定序列个数n及n个数,求该序列的最大连续子序列的和,要求输出最大连续子序列的和以及子序列的首位位置 解题思路:经典DP,可以定义 ...
- HDU 1241 Oil Deposits --- 入门DFS
HDU 1241 题目大意:给定一块油田,求其连通块的数目.上下左右斜对角相邻的@属于同一个连通块. 解题思路:对每一个@进行dfs遍历并标记访问状态,一次dfs可以访问一个连通块,最后统计数量. / ...
- 洛谷 P1019 单词接龙【经典DFS,温习搜索】
P1019 单词接龙 题目描述 单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的“龙”(每个单词都最多在“龙”中出现两次),在 ...
- HDOJ(HDU).1258 Sum It Up (DFS)
HDOJ(HDU).1258 Sum It Up (DFS) [从零开始DFS(6)] 点我挑战题目 从零开始DFS HDOJ.1342 Lotto [从零开始DFS(0)] - DFS思想与框架/双 ...
- HDOJ(HDU).1016 Prime Ring Problem (DFS)
HDOJ(HDU).1016 Prime Ring Problem (DFS) [从零开始DFS(3)] 从零开始DFS HDOJ.1342 Lotto [从零开始DFS(0)] - DFS思想与框架 ...
随机推荐
- struts2 框架的基本使用
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http:// ...
- Intent对象若干数据项的含义总结
Intent作为组件之间通信的手段和协议,包含了诸如Action.Data.Type.Category.Component.Extras和Flags等数据项,各自拥有各自的含义和作用.当调用组件发出一 ...
- ssh时传递环境变量
设置要传递的变量: -o SendEnv=Varname 但是不是每个都能传,受服务器上sshd_config里的下面两个选项的控制: AcceptEnv and PermitUserEnvironm ...
- fiddler抓包时显示Tunnel to......443
打开手机浏览器,输入http://192.168.0.65:8888/FiddlerRoot.cer
- [GO]结构体及普通变量初始化
结构体是一种聚合的数据类型,它是由一系列相同类型或者不同类型的数据构成的数据集合,每个数据称为结构体的成员 1.结构体的初始化 package main import "fmt" ...
- sql server重建系统数据库
方法一:https://bbs.csdn.net/topics/100013082 方法二:http://blog.51cto.com/jimshu/1095780 *** 方法三:https://b ...
- ERC230 VS ERC223
ERC223对ERC220的改进 ERC223是以太坊上最新的代币(token)接口标准,主要是为了解决ERC220代币转账丢失问题,那么怎么解决的呢,一起来看看. 1. ERC220 存在问题 ER ...
- HtmlAgilityPack 使用
或.无属性.属性个数.属性值: var preceding_siblings = node.SelectNodes("preceding-sibling::input| preceding- ...
- bitest(位集合)------c++程序设计原理与实践(进阶篇)
标准库模板类bitset是在<bitset>中定义的,它用于描述和处理二进制位集合.每个bitset的大小是固定的,在创建时指定: bitset<4> flags; bitse ...
- IO模型《二》阻塞IO
阻塞IO(blocking IO) 在linux中,默认情况下所有的socket都是blocking,一个典型的读操作流程大概是这样: 当用户进程调用了recvfrom这个系统调用,kernel就开始 ...