UVALive 5107 dfs暴力搜索
题目链接:A hard Aoshu Problem
DES:给三个字符串,包含的字符是A-E范围内的。长度都不超过8。每个字符可以而且只可以匹配一个数字。两个字符不能匹配相同的数字。前两个式子之间可以有+-*/四中关系。然后=第三个式子。问。会有多少种关系式。
#include<stdio.h>
#include<string.h>
#include<iostream>
using namespace std; char s[][];
int a[], b[], c[]; // 字符转换成数字后存储。
int num[]; // 每个字符匹配给哪个数字。
int len[];
int vis1[], vis2[]; //vis1[]保存下标对应字符是否出现。(A B C D E->0 1 2 3 4)。vis2[]标记枚举数字时标记是否已经出现过、
int ans;
int aa, bb, cc; //三个字符串对应的数字、 int check() // 不可有前导0的检查。
{
if (len[] > && num[a[]] == ) return ;
if (len[] > && num[b[]] == ) return ;
if (len[] > && num[c[]] == ) return ;
return ;
} void getnum() //根据每次枚举把三个字符串换成数字。
{
aa = , bb = , cc = ;
for (int i=; i<len[]; ++i)
{
aa = aa * + num[a[i]];
}
for (int i=; i<len[]; ++i)
{
bb = bb * + num[b[i]];
}
for (int i=; i<len[]; ++i)
{
cc = cc * + num[c[i]];
}
} int gettot() //看有几种运算关系。
{
int temp = ;
if (aa + bb == cc) temp++;
if (aa - bb == cc) temp++;
if (aa * bb == cc) temp++;
if (bb * cc == aa && bb != ) temp++;
return temp;
} void dfs(int x) // 暴力枚举每一个字符匹配十个数字的情况。
{
if (x == ) // x表示当前枚举第几个字母。如果枚举完就可以看当前匹配有几种关系式。
{
if (check())
{
getnum();
int cnt = gettot();
ans += cnt;
return;
}
} else if (vis1[x]) // 如果x对应的字符出现在三个字符串里、
{
for (int i=; i<=; ++i) // 开始枚举。
{
if (vis2[i] == )
{
num[x] = i;
vis2[i] = ;
dfs(x+);
vis2[i] = ; // 回溯
}
}
}
else dfs(x+); // 否则就继续匹配下一个字符。
} int main()
{
int t;
cin >> t;
while(t--)
{
ans = ;
memset(vis1, , sizeof(vis1));
memset(vis2, , sizeof(vis2));
// 输入处理
for (int i=; i<; ++i)
{
cin >> s[i];
len[i] = strlen(s[i]);
for (int j=; j<len[i]; ++j)
{
int temp = s[i][j] - 'A';
if (i == ) a[j] = temp;
if (i == ) b[j] = temp;
if (i == ) c[j] = temp;
vis1[temp]++;
}
}
dfs();
cout << ans << endl;
}
return ;
}
UVALive 5107 dfs暴力搜索的更多相关文章
- UVALive 5844 dfs暴力搜索
题目链接:UVAive 5844 Leet DES:大意是给出两个字符串.第一个字符串里的字符可以由1-k个字符代替.问这两个字符串是不是相等.因为1<=k<=3.而且第一个字符串长度小于 ...
- hdu 1427 速算24点 dfs暴力搜索
速算24点 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Problem De ...
- ACM: Gym 100935G Board Game - DFS暴力搜索
Board Game Time Limit:2000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u Gym 100 ...
- 洛谷P1019——单词接龙(DFS暴力搜索)
https://www.luogu.org/problem/show?pid=1019#sub 题目描述 单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母, ...
- [HDU 1427]速度计算24点(DFS暴力搜索)
主题连接: pid=1427">http://acm.hdu.edu.cn/showproblem.php?pid=1427 思路:简单的DFS.dfs(sum,next,p)表 ...
- poj 3050 Hopscotch DFS+暴力搜索+set容器
Hopscotch Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 2774 Accepted: 1940 Description ...
- ACM 暴力搜索题 题目整理
UVa 129 Krypton Factor 注意输出格式,比较坑爹. 每次要进行处理去掉容易的串,统计困难串的个数. #include<iostream> #include<vec ...
- [luogu 1092] 虫食算 (暴力搜索剪枝)
传送门 Description Input 包含四行. 第一行有一个正整数 (N≤26). 后面的三行,每行有一个由大写字母组成的字符串,分别代表两个加数以及和.这3个字符串左右两端都没有空格,从高位 ...
- HDU 3131 One…Two…Five! (暴力搜索)
题目链接:pid=3131">HDU 3131 One-Two-Five! (暴力搜索) 题意:给出一串数字,要求用加,减,乘,除(5/2=2)连接(计算无优先级:5+3*6=8*6= ...
随机推荐
- 20165310_java_blog_week1.md
2165310 <Java程序设计>第1周学习总结 教材学习内容总结 了解Java基本配置环境 学习Java命名.编译.运行规则 拓展学习包的编译.运行 熟悉Git的运用方式 教材学习中的 ...
- SVC(STM32)
这两个都是 system level service,有什么区别呢?…… 手册上说 SVC 这个指令是同步的,而 PendSV 是异步的,请问是什么意思呢?…… 高手路过尽请留言啊
- VC 线程池
参照:http://www.cnblogs.com/kzloser/archive/2013/03/11/2909221.html 参照:http://blog.csdn.net/pjchen/art ...
- Linux设备驱动中的IO模型---阻塞和非阻塞IO【转】
在前面学习网络编程时,曾经学过I/O模型 Linux 系统应用编程——网络编程(I/O模型),下面学习一下I/O模型在设备驱动中的应用. 回顾一下在Unix/Linux下共有五种I/O模型,分别是: ...
- 写一个标准宏MIN,输入两个参数,返回较小的
#define MIN(A,B) ((A) <= (B) ? (A) : (B))MIN(*p++, b)会产生宏的副作用 剖析: 这个面试题主要考查面试者对宏定义的使用,宏定义可以实现类似于函 ...
- 51nod 1266 蚂蚁
蚂蚁这道题 就是 不管两只蚂蚁相撞 他们会朝自己的反方向走 不过可以这么想 有蚂蚁1 和 蚂蚁2 并且相向而行 如果撞了以后 蚂蚁1和蚂蚁2 就往回走 ,这里可以理解成蚂蚁1,蚂蚁2 继续 ...
- BZOJ1398: Vijos1382寻找主人 Necklace 字符串最小表示法
Description 给定两个项链的表示,判断他们是否可能是一条项链. Input 输入文件只有两行,每行一个由0至9组成的字符串,描述一个项链的表示(保证项链的长度是相等的). Output 如果 ...
- [shiro] - 加入rememberMe功能
shiro不加入rememberMe没事,一加入就出错. RememberMeAuthenticationToken : public interface RememberMeAuthenticati ...
- [IDEA插件] - 一个不错的插件
今天看到微信平台一篇推送IDEA插件的文章继而下载了个插件看了下. 名字叫做codehelper.generator codehelper.generator http://plugins.jetbr ...
- java的事务类型及定义
转载: 什么是事务: 首先,说说什么事务.我认为事务,就是一组操作数据库的动作集合. 事务是现代数据库理论中的核心概念之一.如果一组处理步骤或者全部发生或者一步也不执行,我们称该组处理步骤为一个事务. ...