链接: https://www.nowcoder.com/acm/contest/72/B
来源:牛客网

小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猜的每个字符串能否被表示出

#include<bits/stdc++.h>
#define M 305
using namespace std;
int n,m,q;
int mark[M][28];
int dp[M][M];//dp[i][j]表示到第i行,匹配到了第j位是否可行int main(){scanf("%d%d%d",&n,&m,&q);FOR(i,1,n){char s[M];scanf("%s",s);FOR(j,0,m-1){if(s[j]=='#')mark[i][26]=1;else mark[i][s[j]-'a']=1;}}while(q--){char s[10005];scanf("%s",s+1);int l=strlen(s+1);if(l>n){puts("NO");continue;}memset(dp,0,sizeof(dp));dp[0][0]=1;FOR(i,1,n){//到哪一位了FOR(j,0,l-1){//int now=s[j+1]-'a';if(dp[i-1][j]){if(mark[i][now])dp[i][j+1]=1;}}if(mark[i][26]){FOR(j,0,l){dp[i][j]|=dp[i-1][j];}}}if(dp[n][l])puts("YES");else puts("NO");}return 0;
}

记忆化搜索本质是dp相关推荐

  1. PAT甲级1090 Highest Price in Supply Chain:[C++题解]树、结点到根结点的距离、记忆化搜索、树形dp

    文章目录 题目分析 题目链接 题目分析 来源:acwing 和PAT甲级1079 Total Sales of Supply Chain:[C++题解] 树.结点到根结点的距离.树形dp.记忆化搜索是 ...

  2. 牛客假日团队赛5 F 随机数 BZOJ 1662: [Usaco2006 Nov]Round Numbers 圆环数 (dfs记忆化搜索的数位DP)...

    链接:https://ac.nowcoder.com/acm/contest/984/F 来源:牛客网 随机数 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言6 ...

  3. 【HDU - 4784】Dinner Coming Soon(记忆化搜索bfs,dp)

    题干: Coach Pang loves his boyfriend Uncle Yang very much. Today is Uncle Yang's birthday, Coach Pang ...

  4. UVA - 11361 Investigating Div-Sum Property(数位dp/记忆化搜索板子)

    题目:https://vjudge.net/problem/UVA-11361 思路:数位dp,用记忆化搜索写,dp[pos][i][j][limit] 代表剩余有pos位,每位上的数字和模k 等于i ...

  5. 记忆化搜索(Memory Search)

    Question 输入n,符合要求的序列为:第一个数为n,第二个数不大于n,从第三个数起小于前两个数的差的绝对值,后面以此类推.求有多少种序列?答案取模10000(数据:n最大为1000) Sampl ...

  6. hdu1978 简单记忆化搜索

    题意: How many ways Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) T ...

  7. hdu 1078(记忆化搜索)

    题意: 老鼠每次最多走k步停下来,停下的这个位置只能比上一个停留的位置大,并获取其价值,每次只能水平或垂直走,问最大能得到的价值 解题思路:这道题可以用记忆化搜索解决,dp[i][j]表示老鼠在位置( ...

  8. 思维dp ---- Codeforces Round #711 (Div. 2) - C. Planar Reflections[dp/记忆化搜索]

    题目链接 题目大意: 就是给你n个平面和一个寿命为k的衰变粒子.开始粒子从左向右飞行,粒子每经过一个平面就会产生一个副本粒子,这个副本粒子比原粒子的寿命少1,即为k-1,并且飞行方向是原粒子的反方向. ...

  9. Discovering Gold LightOJ - 1030[概率dp或者记忆化搜索]

    题目大意:有一个[1,n][1,n][1,n]的数轴,数轴上的每个对应位置上都有金矿,你初始位置是1,然后你每次都会投色子决定你下一步跳到哪里,如果你跳出了nnn,那么你就要重新投.问你跳到nnn的时 ...

最新文章

  1. String byte[] stream File之间的相互转换
  2. NSString字符串常用知识点
  3. 增强学习(五)----- 时间差分学习(Q learning, Sarsa learning)
  4. 毕业季,拿走你急需的求职面试技巧
  5. GDCM:gdcm::FileChangeTransferSyntax的测试程序
  6. 51nod-诺德街【数学期望】
  7. Expression Blend 学习视频下载
  8. mysql 不在另一个表中_MySQL选择查询从表中选择不在另一个表中的行?
  9. 用Scholar one 投稿过程
  10. Kafka下载安装及部署
  11. UAC怎么关闭?电脑的UAC如何关闭
  12. linux双网卡连不上网,linux 双网卡配置问题
  13. wamp php 7.0,wamp如何尝鲜php7
  14. 图解 魔方快速还原 7步法
  15. Verilog语言初学1
  16. 【如何使用高级语言在机器语言层面提高程序运行效率】
  17. 硬核干货:网易云音乐如何做产品创新
  18. python简单爬虫 指定汉字的笔画动图下载
  19. gs 服务器文件,服务器gs
  20. Unity Rigidbody.AddForce 的 ForceMode

热门文章

  1. apache poi使用例_使用java Apache poi 根据word模板生成word报表例子
  2. 找出最具竞争力的子序列_每日算法系列【LeetCode 376】摆动序列
  3. python编程例子-几个Python小案例,爱上Python编程!
  4. python单词的含义-Python这个单词是什么含义??????????????
  5. 自学python需要安装什么-Python自学之环境安装
  6. python网课哪个好-python网课学习笔记--4
  7. 1.java数组教程及示例知乎
  8. python的文本编辑geny_android模拟器(genymotion)+appium+python 框架执行基本原理(目前公司自己写的)...
  9. 301 302区别_302状态码代表什么,302状态码解决方法
  10. 【滑动窗口】leetcode1456:定长子串中元音的最大数目