这道题目各种wa。首先是错了一个坐标,居然没测出来。然后是剪枝错误。搜索pen时就返回,可能还存在串pen*。

  1. #include <cstdio>
  2. #include <cstring>
  3. #include <cstdlib>
  4.  
  5. #define MAXN 1005
  6.  
  7. typedef struct Trie {
  8. int v;
  9. Trie *next[];
  10. Trie() {
  11. v = ;
  12. for (int i=; i<; ++i)
  13. next[i] = NULL;
  14. }
  15. } Trie;
  16.  
  17. Trie root;
  18. int direct[][] = {{-,},{-,},{,},{,},{,},{,-},{,-},{-,-}};
  19. char map[MAXN][MAXN], buf[MAXN];
  20. int ans[MAXN][], n, m, xx, yy;
  21. bool visit[MAXN];
  22.  
  23. void create(char str[], int in) {
  24. int i = , id;
  25. Trie *p = &root, *q;
  26.  
  27. while (str[i]) {
  28. id = str[i] - 'A';
  29. ++i;
  30. if (p->next[id] == NULL) {
  31. q = new Trie();
  32. p->next[id] = q;
  33. }
  34. p = p->next[id];
  35. }
  36. p->v = in;
  37. }
  38.  
  39. void find(Trie *t, int x, int y, int k) {
  40. if (t == NULL)
  41. return ;
  42.  
  43. if (t->v && !visit[t->v]) {
  44. visit[t->v] = true;
  45. ans[t->v][] = xx;
  46. ans[t->v][] = yy;
  47. ans[t->v][] = k;
  48. }
  49. if (x< || x>=n || y< || y>=m)
  50. return ;
  51. find(t->next[map[x][y]-'A'], x+direct[k][], y+direct[k][], k);
  52. }
  53.  
  54. void search() {
  55. int k;
  56.  
  57. memset(visit, false, sizeof(visit));
  58.  
  59. for (xx=; xx<n; ++xx)
  60. for (yy=; yy<m; ++yy)
  61. for (k=; k<; ++k)
  62. find(&root, xx, yy, k);
  63. }
  64.  
  65. int main() {
  66. int w;
  67. int i;
  68.  
  69. scanf("%d%d%d",&n,&m,&w);
  70.  
  71. for (i=; i<n; ++i)
  72. scanf("%s", map[i]);
  73.  
  74. for (i=; i<=w; ++i) {
  75. scanf("%s", buf);
  76. create(buf, i);
  77. }
  78. search();
  79. for (i=; i<=w; ++i)
  80. printf("%d %d %c\n", ans[i][], ans[i][], ans[i][]+'A');
  81.  
  82. return ;
  83. }

【POJ】1204 Word Puzzles的更多相关文章

  1. POJ 题目1204 Word Puzzles(AC自己主动机,多个方向查询)

    Word Puzzles Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 10244   Accepted: 3864   S ...

  2. 【POJ】1704 Georgia and Bob(Staircase Nim)

    Description Georgia and Bob decide to play a self-invented game. They draw a row of grids on paper, ...

  3. 【POJ】1067 取石子游戏(博弈论)

    Description 有两堆石子,数量任意,可以不同.游戏开始由两个人轮流取石子.游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子:二是可以在两堆中同时取走相同数量的石子.最后 ...

  4. 【LeetCode】Longest Word in Dictionary through Deleting 解题报告

    [LeetCode]Longest Word in Dictionary through Deleting 解题报告 标签(空格分隔): LeetCode 题目地址:https://leetcode. ...

  5. 【 POJ - 1204 Word Puzzles】(Trie+爆搜|AC自动机)

    Word Puzzles Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 10782 Accepted: 4076 Special ...

  6. [POJ 1204]Word Puzzles(Trie树暴搜&amp;AC自己主动机)

    Description Word puzzles are usually simple and very entertaining for all ages. They are so entertai ...

  7. 【BZOJ】【1986】【USACO 2004 Dec】/【POJ】【2373】划区灌溉

    DP/单调队列优化 首先不考虑奶牛的喜欢区间,dp方程当然是比较显然的:$ f[i]=min(f[k])+1,i-2*b \leq k \leq i-2*a $  当然这里的$i$和$k$都是偶数啦~ ...

  8. 【POJ】【2104】区间第K大

    可持久化线段树 可持久化线段树是一种神奇的数据结构,它跟我们原来常用的线段树不同,它每次更新是不更改原来数据的,而是新开节点,维护它的历史版本,实现“可持久化”.(当然视情况也会有需要修改的时候) 可 ...

  9. 【POJ】1222 EXTENDED LIGHTS OUT

    [算法]高斯消元 [题解] 高斯消元经典题型:异或方程组 poj 1222 高斯消元详解 异或相当于相加后mod2 异或方程组就是把加减消元全部改为异或. 异或性质:00 11为假,01 10为真.与 ...

随机推荐

  1. WCF - 序列化

    数据是信息的载体 在不同环境中有不同的类型 为保证处于不同平台的的应用能够正常的进行数据交互 必须采用一种双方都能理解的数据类型 XML无疑是最好的选择 但不是唯一的选择 例如JSON也是一种普遍认可 ...

  2. 小结 iOS 中的 copy

    预备知识 : 内存的栈区 : 由编译器自动分配释放, 存放函数的参数值, 局部变量的值等. 其 操作方式类似于数据结构中的栈. 内存的堆区 : 一般由程序员分配释放, 若程序员不释放, 程序结束时可能 ...

  3. 使用fastjson前台报406的问题解决方法

    返回的json数据前台页面报406,而后台没有报错,下面为解决方法 <?xml version="1.0" encoding="UTF-8"?> & ...

  4. HDU 4971 - A simple brute force problem【最大权闭合图】

    有n(20)个工程,完成每个工程获得收益是p[i],m(50)个需要解决的难题,解决每个难题花费是c[i] 要完成第i个工程,需要先解决ki个问题,具体哪些问题,输入会给出 每个难题之间可能有依赖关系 ...

  5. C# GridView点击某列打开新浏览器窗口

    C# GridView点击某列打开新窗口的方式: (1)打开浏览器新窗口:蓝色部分 通过超链接. (2)打开模式化窗口:通过OnRowCommand事件,弹出模式化窗口. 具体如下: <asp: ...

  6. 关于webservice不支持方法重载的解决办法

    今天在写WebService时,出现了这样的错误: Count(Int32, Int32) 和 Count(Int32) 同时使用消息名称“Count”.使用 WebMethod 自定义特性的 Mes ...

  7. [转]mysql导入导出数据中文乱码解决方法小结

    本文章总结了mysql导入导出数据中文乱码解决方法,出现中文乱码一般情况是导入导入时编码的设置问题,我们只要把编码调整一致即可解决此方法,下面是搜索到的一些方法总结,方便需要的朋友. linux系统中 ...

  8. java 迭代器iterator

    对于如ArrayList<E>类的数据,常用iterator遍历. ArrayList<String> list = new ArrayList<String>() ...

  9. 十大算法---Adaboost

    当我们有针对同一数据集有多个不同的分类器模型时,怎样组合它们使预测分类的结果更加准确, 针对这种情况,机器学习通常两种策略. 1 一种是bagging,一种是boosting bagging:随机对样 ...

  10. Spring MVC中注解 @ModelAttribute

    1.@ModelAttribute放在方法之上,在当前Control内的所有方法映射多个URL的请求,都会执行该方法 @ModelAttribute public void itemsCommon(H ...