一开始确实是我的锅,我把题意理解错了,以为是一个q周围没有q的时候才可以当时qu,其实是只要碰到q,他就是qu,所以我们也可以通过预处理的方式,把字典中的不满足qu连在一起的直接去掉。

  后来的各种TIE我就表示不能理解了……我换了好多个姿势,改了各种各样的形式,最后改的快跟学长一模一样了,还是TLE……WTF,真是见了鬼了,最后我发现学长的代码里,字符串的长度没有作为参数传进去,而是在里面直接计算的,我的是把长度计算好了,存起来,直接传参进入递归。结果还真就是因为这个,TLE了,我把这个参数去了以后用各种编译器都是3msAC。加上去以后就各种超时……至于是为什么……我现在还不知道,你们要是有谁知道告诉我一声啊…… 反正以后我也会注意这方面的原因,在深搜里,尽量少放参数……

  总体来说,题目并不难,只是我入坑了……

代码如下:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
#define N 20
string dic[];
int w,D,go[][] = {{,},{-,},{,-},{,},{-,-},{-,},{,-},{,}};
int vis[N][N];
char maps[N][N];
bool flag;
void dfs(int k,int num,int nowx,int nowy)
{
if(flag) return;
int len = dic[k].length();
if(maps[nowx][nowy] == 'q')
{
if(num+<len && dic[k][num+] == 'u')
num++;
else return;
}
if(num == len-)
{
flag = true;
return ;
}
int xx,yy;
vis[nowx][nowy] = ;
for(int i = ; i < ; i++)
{
xx = nowx + go[i][];
yy = nowy + go[i][];
if(xx>=&&xx<D&&yy>=&&yy<D && maps[xx][yy] == dic[k][num+] && !vis[xx][yy])
{
dfs(k,num+,xx,yy);
}
}
vis[nowx][nowy] = ;
}
bool can_out(int k)
{
for(int i = ; i < D; i++)
{
for(int j = ; j < D; j++)
{
if(dic[k][] == maps[i][j])
{
flag = false;
memset(vis,,sizeof(vis));
dfs(k,,i,j);
if(flag) return true;
}
}
}
return false;
}
int main()
{
// freopen("I.in.cpp","r",stdin);
while(~scanf("%d",&w) && w)
{
for(int i = ; i < w; i++)
{
cin>>dic[i];
}
sort(dic,dic+w);
while(~scanf("%d",&D))
{
if(D==) break;
for(int i = ; i < D; i++)
{
scanf("%s",maps[i]);
}
for(int i = ; i < w; i++)
{
if(can_out(i)) cout<<dic[i]<<endl;
}
puts("-");
}
}
return ;
}

UVALive 7299 Boggle(深搜的姿势)的更多相关文章

  1. uvalive 7299 Boggle

    Boggle is a game in which 16 dice with letters on each side are placed into a 4 × 4 grid. Players th ...

  2. UVALive 6948 Jokewithpermutation 深搜

    题意就是把一段序列拆成从1到n的形式 一开始暴力了一下 后来发现bug太多一定是思路不对…… #include<stdio.h> #include<iostream> #inc ...

  3. UVALive 2053 Puzzlestan(深搜+技巧)

    这个题目的深搜形式,我也找出来了,dfs(i,j)表示第i个人选到了第j个物品,但是我却无限RE了,原因是我的viod型深搜太过暴力,我当时定义了一个计数器,来记录并限制递归的层数,发现它已经递归到了 ...

  4. UVALive 2403 77377解题报告(深搜)

    题意:给你一些固定的字符串,在给出数字,根据键盘的对应关系,输出所有的满足条件的字符串,输出顺序无所谓. 思路:因为题目说了,输出比较小,说明测试数据并不强,所以可以暴力回溯求出答案,将所有的给出的字 ...

  5. HDU--杭电--1195--Open the Lock--深搜--都用双向广搜,弱爆了,看题了没?语文没过关吧?暴力深搜难道我会害羞?

    这个题我看了,都是推荐的神马双向广搜,难道这个深搜你们都木有发现?还是特意留个机会给我装逼? Open the Lock Time Limit: 2000/1000 MS (Java/Others)  ...

  6. 利用深搜和宽搜两种算法解决TreeView控件加载文件的问题。

    利用TreeView控件加载文件,必须遍历处所有的文件和文件夹. 深搜算法用到了递归. using System; using System.Collections.Generic; using Sy ...

  7. 2016弱校联盟十一专场10.3---Similarity of Subtrees(深搜+hash、映射)

    题目链接 https://acm.bnu.edu.cn/v3/problem_show.php?pid=52310 problem description Define the depth of a ...

  8. 2016弱校联盟十一专场10.2---Around the World(深搜+组合数、逆元)

    题目链接 https://acm.bnu.edu.cn/v3/problem_show.php?pid=52305 problem  description In ICPCCamp, there ar ...

  9. 2015暑假多校联合---Cake(深搜)

    题目链接:HDU 5355 http://acm.split.hdu.edu.cn/showproblem.php?pid=5355 Problem Description There are m s ...

随机推荐

  1. php 备份数据库

    <?php    header("Content-type:text/html;charset=utf-8");    //配置信息  $cfg_dbhost = 'loca ...

  2. 关于No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=x86_64, VALID_ARCHS=armv7 armv7s)使用百度地图的解决办法

    出现的原因:armv7s是应用在iPhone 5 A6 的架构上的解决的方式:1,在Project target里“Architectures”设置为“Standard (armv7,armv7s)” ...

  3. javascript焦点图之缓冲滚动无缝切换

    在用于实现无缝切换四张图,所以设置了6个图片就是 4,0,1,2,3,4,0 <!DOCTYPE html> <html> <head> <meta char ...

  4. python--sum函数--sum(axis=1)

    平时用的sum应该是默认的axis=0 就是普通的相加,当加入axis=1以后就是将一个矩阵的每一行向量相加. 例如: >>>import numpy as np >>& ...

  5. Saltstack 操作目标,正则匹配,及组管理

    如果我们要维护好一个庞大的配置管理系统那么首选得维护好我们的管理对象,在saltstack系统中我们的管理对象叫做Target, 在master上我们可以采用不同Target去管理不同的Minion. ...

  6. k近邻算法

    k 近邻算法是一种基本分类与回归方法.我现在只是想讨论分类问题中的k近邻法.k近邻算法的输入为实例的特征向量,对应于特征空间的点,输出的为实例的类别.k邻近法假设给定一个训练数据集,其中实例类别已定. ...

  7. ZOJ 2158 POJ 1789 Truck History

    最小生成树,主要是题目比较难懂. #include <cstdio> #include <cstring> #include <cmath> #include &l ...

  8. ubuntu/linux 下 git 通过代理下载数据 (最简单的方式)

    git国内访问较慢,走代理较快. 方法:git config --global http.proxy http://proxyuser:proxypwd@proxy.server.com:port_n ...

  9. leetcode404-----简单的树的遍历

    Find the sum of all left leaves in a given binary tree. Example: 3 / \ 9 20 / \ 15 7 There are two l ...

  10. 第四十二节,configparser特定格式的ini配置文件模块

    configparser用于处理特定格式的文件,其本质上是利用open来操作文件. 特定格式的ini配置文件模块,用于处理ini配置文件,注意:这个ini配置文件,只是ini文件名称的文本文件,不是后 ...