小H和密码

小H在击败怪兽后,被一个密码锁挡住了去路     密码锁由N个转盘组成,编号为1~N,每个转盘有M个位置,每个位置上要么有一个小写字母,要么没有任何字符。一个密码能被转盘表示出,当且仅当指定每个转盘上面的某一个位置,然后将这些位置按照所属的转盘编号顺次连接(空位置直接忽略),可以得到这个密码     小H并没有得到任何线索,因此只能猜,她一共猜了Q次,但并不知道自己猜的密码能否被表示出来,于是她向你求助

输入描述:

第1行,三个整数N,M,Q
第2~N+1行,每行一个长度为M的字符串,依次表示每个转盘上的字符
第N+2~N+Q+1行,每行一个长度不超过10000的字符串,表示小H猜的密码

2≤N,Q≤300,2≤M≤27,同一个转盘上每种字符最多出现一次

输出描述:

输出Q行,每行都是YES或NO,依次表示小H猜的每个字符串能否被表示出

输入样例:

3 2 3 
a# 
ab 
bc 
aa 
bb

ba

输出样例:

NO
YES
NO

其中“#”表示字符为空

按密码盘的顺序和猜的字符进行配对,用dp把所有起始点位过一遍就行

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<stack>
#include<map>
#include<vector>
#include<queue>
#include<set>
using namespace std;
char c[301][30],str[100001];
int dp[301][301],vis[301][301],n,m,q,len;
int main()
{
    cin>>n>>m>>q;
    for(int i=1;i<=n;i++)
    {
        scanf("%s",c[i]);
        for(int j=0;j<m;j++)
        {
            if(c[i][j]==‘#‘)
                vis[i][26]=1;
            else
                vis[i][c[i][j]-‘a‘]=1;
        }
    }
    while(q--)
    {
        scanf("%s",str);
        len=strlen(str);
        memset(dp,0,sizeof(dp));
        if(len>n){cout<<"NO"<<endl;continue;}
        dp[0][0]=1;
        for(int i=1;i<=n;i++)
            {
                for(int j=0;j<=len;j++)
            {
                if(vis[i][26])
                    dp[i][j]|=dp[i-1][j];
                if(j<len && vis[i][str[j]-‘a‘])
                    dp[i][j+1]|=dp[i-1][j];
            }
            if(dp[n][len])break;
            }
        if(dp[n][len])cout<<"YES"<<endl;
        else cout<<"NO"<<endl;
    }
    return 0;
}

原文地址:https://www.cnblogs.com/SparkPhoneix/p/8467359.html

时间: 2024-12-23 23:21:16

小H和密码的相关文章

wannafly 挑战赛10 小H和密码

题意:中文题就解释了 题解: dp[i][j]表示前i 个轮盘 和一个字符串前j 个字符的匹配情况 ,具体的状态转移解释见代码 #include <cstdio> #include <cstring> #include <iostream> #include <string> using namespace std; int n,m,q; int vis[350][1005]; int dp[350][1005]; int main() { cin>&

Problem D: 小平查密码

Problem D: 小平查密码 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 194  Solved: 40[Submit][Status][Web Board] Description 小平在五一期间趁学弟不在,每天在实验室过度看视(电)频(影),患了健忘症,以前的很多事情都记不起来了.但小平以前有个习惯,总喜欢把自己在各种系统的密码记录在一个文本文件ping.dic中,文件内容包含每个系统的名称,用户名和密码. 文件包含若干行,前3行的信息如

小明的密码-初级DP解法

#include #include #include using namespace std; int visited[5][20][9009];// 访问情况 int dp[5][20][9009]; // M N num num即M-1位的数字 int num_2[7]= {2,3,5,7,11,13,17}; int num_3[9]= {2,3,5,7,11,13,17,19,23}; int num_4[11]= {2,3,5,7,11,13,17,19,23,29,31}; //存储

【渗透笔记】拿下某小H网的全过程

自从班上A片小王子的7个T资源被封了以后,本小白为造福全班同学,尝试拿下个小H网,先用webrobot搜某些只有小H网才会出现的关键词 本以为直接导出放御剑里跑就行了,然并软.于是用awvs扫了一下,也没什么用.从cms下手吧放进椰树里 百度一下maxcms的漏洞看到这样一条 http://www.2cto.com/index.php/364.html发现注入点 http://www.xxxxx.com/inc/ajax.asp?action=videoscore&id=11 ,放进sqlmap

18025 小明的密码

18025 小明的密码 时间限制:4000MS  内存限制:65535K提交次数:0 通过次数:0 题型: 编程题   语言: G++;GCC Description 小明的密码由N(1<=N<=12)个数字构成,每个数字都可以是0至9中任意一个数字,但小明的密码还有 一个特点就是密码中连续的M(1<=M<=4)个数字的和是质数,现给定M和N,求满足条件的密码共有多少 个? 输入格式 第1行是T,case数量,此后T行,每行两个数,N和M 输出格式 每个case输出一个满足条件的密

scauoj 18025 小明的密码 数位DP

18025 小明的密码 时间限制:4000MS  内存限制:65535K提交次数:0 通过次数:0 题型: 编程题   语言: G++;GCC Description 小明的密码由N(1<=N<=12)个数字构成,每个数字都可以是0至9中任意一个数字,但小明的密码还有 一个特点就是密码中连续的M(1<=M<=4)个数字的和是质数,现给定M和N,求满足条件的密码共有多少 个? 输入格式 第1行是T,case数量,此后T行,每行两个数,N和M 输出格式 每个case输出一个满足条件的密

一个简洁的小H车调运模型

一个简洁的小H车调运模型 不久前, 帝都B城市到处都是小H车, 理想的小H车应该是布朗运动\均匀分布,可是现实上它们就是不均匀.于是有如下问题: 观察帝都 HD区SY村区域,将其划分成10个用车点,用大数据回归预测出第二天(周一)的用车数据如下,夜晚开始调运,务必满足第二天的需求,极小化调运总里程. 数据项 符号 用车点 地区  i 1 2 3 4 5 6 7 8 9 10 X-坐标  X[i] 0 200 155 70 90 45 88 44 60 111 Y-坐标 Y[i] 0 200 30

zzulioj - 2624: 小H的奇怪加法

题目链接:http://acm.zzuli.edu.cn/problem.php?id=2624 题目描述 小H非常喜欢研究算法,尤其是各种加法.没错加法包含很多种,例如二进制中的全加,半加等.全加:对两个输入数据位相加,输出一个结果位和进位,有进位输入的加法.半加:对两个输入数据位相加,输出一个结果位和进位,没有进位输入的加法.异或操作就是半加.C语言中,‘^’是异或运算符但是常见的加法都是十进制的,人们习惯使用十进制数,并且默认一个数字的每一位都是十进制的.前几天,小H听说ADD星有一种新的

更正之前《登录小案例》密码错3次15分钟内不准登录的代码逻辑

之前写的一篇 数据库查询的一般写法:从登陆验证小案例中得到的一些启示和经验.是有点问题的. 问题在于判断15分钟内密码错误的代码. 原代码如下: //使用using对SqlDataReader进行资源管理 using (SqlDataReader dr = cmd.ExecuteReader()) { if (dr.HasRows) { dr.Read(); if (dr.GetInt32(5) > 15) { //重置uErrTimes SqlHelper.ResetErrTimes(dr.G