题目链接:UVAive 5844 Leet

DES:大意是给出两个字符串。第一个字符串里的字符可以由1-k个字符代替。问这两个字符串是不是相等。因为1<=k<=3。而且第一个字符串长度小于等于15.所以。对第一个字符串里的每一个字符尝试匹配1-k个字符看是否有可能相等就好了。

比赛的时候想到这是dfs类暴力,但是map<char, char*>没用过。不知道怎么记录了。而且dfs本身就不太会用。依然感觉dfs很奇妙。

  1. #include <iostream>
  2. #include <stdio.h>
  3. #include <string.h>
  4. #include <map>
  5. using namespace std;
  6.  
  7. int k;
  8. char s1[], s2[];
  9. int len1, len2;
  10. bool flag;
  11. map<char, char *>mm;
  12.  
  13. void dfs(int l1, int l2)
  14. {
  15. if (flag) return;
  16. if (l1 == len1 && l2 == len2)
  17. {
  18. flag = true;
  19. return;
  20. }
  21. if (l1 >= len1 || l2 >= len2) return;
  22. if (mm[s1[l1]]) //如果这个字符以前出现过。像以前一样匹配。
  23. {
  24. char *temp = mm[s1[l1]]; // 这里用指针。不然不能直接赋值。
  25. int lent = strlen(temp);
  26. for (int i=, j=l2; i<lent; ++i, ++j) //是不是可以匹配。
  27. {
  28. if (temp[i] != s2[j])
  29. return;
  30. }
  31. dfs(l1+, l2+lent); //继续匹配第一个字符串的下一个字符。
  32. }
  33. else //如果没出现过。匹配。
  34. {
  35. for (int i=; i<=k; ++i) //尝试把这个字符匹配给对应1-k个字符。k种。
  36. {
  37. char temp[]; //数组。用指针程序会崩。
  38. memset(temp, , sizeof(temp));
  39. for (int j=; j<i; ++j)
  40. {
  41. temp[j] = s2[l2+j];
  42. }
  43. mm[s1[l1]] = temp;
  44. dfs(l1+, l2+i); //继续匹配下一个字符、
  45. mm[s1[l1]] = ; //回溯。
  46. }
  47. }
  48. }
  49.  
  50. int main()
  51. {
  52. int t;
  53. //ios::sync_with_stdio(false);
  54. cin >> t;
  55. //scanf("%d", &t);
  56. while(t--)
  57. {
  58. //scanf("%d%s%s", &k, s1, s2);
  59. cin >> k >> s1 >> s2;
  60. flag = false;
  61. mm.clear();
  62. len1 = strlen(s1);
  63. len2 = strlen(s2);
  64. dfs(, );
  65. if (flag) cout << << endl;
  66. else cout << << endl;
  67. }
  68. return ;
  69. }

(⊙o⊙)哦....学了一个新的东西....ios::sync_with_stdio(false);听说用了它..C++就可以接近C的时间啦。。。。。

试验了一下,,,,

aaarticlea/png;base64,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" alt="" />

分别是用STL & C++ , C, C++...

UVALive 5844 dfs暴力搜索的更多相关文章

  1. UVALive 5107 dfs暴力搜索

    题目链接:A hard Aoshu Problem DES:给三个字符串,包含的字符是A-E范围内的.长度都不超过8.每个字符可以而且只可以匹配一个数字.两个字符不能匹配相同的数字.前两个式子之间可以 ...

  2. hdu 1427 速算24点 dfs暴力搜索

    速算24点 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Problem De ...

  3. ACM: Gym 100935G Board Game - DFS暴力搜索

    Board Game Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u  Gym 100 ...

  4. 洛谷P1019——单词接龙(DFS暴力搜索)

    https://www.luogu.org/problem/show?pid=1019#sub 题目描述 单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母, ...

  5. [HDU 1427]速度计算24点(DFS暴力搜索)

    主题连接:  pid=1427">http://acm.hdu.edu.cn/showproblem.php?pid=1427 思路:简单的DFS.dfs(sum,next,p)表 ...

  6. poj 3050 Hopscotch DFS+暴力搜索+set容器

    Hopscotch Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 2774 Accepted: 1940 Description ...

  7. ACM 暴力搜索题 题目整理

    UVa 129 Krypton Factor 注意输出格式,比较坑爹. 每次要进行处理去掉容易的串,统计困难串的个数. #include<iostream> #include<vec ...

  8. [luogu 1092] 虫食算 (暴力搜索剪枝)

    传送门 Description Input 包含四行. 第一行有一个正整数 (N≤26). 后面的三行,每行有一个由大写字母组成的字符串,分别代表两个加数以及和.这3个字符串左右两端都没有空格,从高位 ...

  9. HDU 3131 One…Two…Five! (暴力搜索)

    题目链接:pid=3131">HDU 3131 One-Two-Five! (暴力搜索) 题意:给出一串数字,要求用加,减,乘,除(5/2=2)连接(计算无优先级:5+3*6=8*6= ...

随机推荐

  1. Android实践项目汇报(总结)-修改

    天气客户端开发报告 1系统需求分析 1.1功能性需求分析 天气预报客户端,最基本就是为用户提供准确的天气预报信息.天气查询结果有两种:一种是当天天气信息,信息结果比较详细,除温度.天气状况外还可以提示 ...

  2. getContext,getApplicationContext和this有什么区别

    使用this, 说明当前类是context的子类,一般是activity application等使用getApplicationContext 取得的是当前app所使用的application,这在 ...

  3. C#中的DllImport使用方法

    DllImport是System.Runtime.InteropServices命名空间下的一个属性类,其功能是提供从非托管DLL导出的函数的必要调用信息 DllImport属性应用于方法,要求最少要 ...

  4. NOI 4978 宠物小精灵之收服(二维背包)

    http://noi.openjudge.cn/ch0206/4978/ 描述 宠物小精灵是一部讲述小智和他的搭档皮卡丘一起冒险的故事. 一天,小智和皮卡丘来到了小精灵狩猎场,里面有很多珍贵的野生宠物 ...

  5. IIS Express 配置json minitype

    IIS Express 配置json minitype 1.在命令窗口中cd到IIS Express安装目录,默认是“C:\Program Files\IIS Express”: 2.在IIS Exp ...

  6. GATK 一些资料

    1. http://blog.sciencenet.cn/home.php?mod=space&uid=1469385&do=blog&classid=166694&v ...

  7. HHVM代码规范

    原文戳我 本文旨在为HHVM编写C++代码提供一种指南,包括了什么时候.怎么使用各种语言功能,以及代码的格式.我们的目标是确保代码持续高可用的同时,还能容易被阅读和参与贡献,尤其是对新人而言. HHV ...

  8. Ubuntu 14.04设置开机启动脚本的方法

    rc.local脚本 rc.local脚本是一个ubuntu开机后会自动执行的脚本,我们可以在该脚本内添加命令行指令.该脚本位于/etc/路径下,需要root权限才能修改. 该脚本具体格式如下: #! ...

  9. API接口自动化之3 同一个war包中多个接口做自动化测试

    同一个war包中多个接口做自动化测试 一个接口用一个测试类,每个测试用例如下,比如下面是4个测试用例,每个详细的测试用例中含有请求入参,返回体校验,以此来判断每条测试用例是否通过 一个war包中,若含 ...

  10. [ios]ScrollView小结

    设置ScrollView self.mysrollview.contentSize = CGSizeMake(1024,768); self.mysrollview.pagingEnabled = Y ...