记忆化搜索本质是dp
链接: https://www.nowcoder.com/acm/contest/72/B
来源:牛客网
密码锁由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相关推荐
- PAT甲级1090 Highest Price in Supply Chain:[C++题解]树、结点到根结点的距离、记忆化搜索、树形dp
文章目录 题目分析 题目链接 题目分析 来源:acwing 和PAT甲级1079 Total Sales of Supply Chain:[C++题解] 树.结点到根结点的距离.树形dp.记忆化搜索是 ...
- 牛客假日团队赛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 ...
- 【HDU - 4784】Dinner Coming Soon(记忆化搜索bfs,dp)
题干: Coach Pang loves his boyfriend Uncle Yang very much. Today is Uncle Yang's birthday, Coach Pang ...
- UVA - 11361 Investigating Div-Sum Property(数位dp/记忆化搜索板子)
题目:https://vjudge.net/problem/UVA-11361 思路:数位dp,用记忆化搜索写,dp[pos][i][j][limit] 代表剩余有pos位,每位上的数字和模k 等于i ...
- 记忆化搜索(Memory Search)
Question 输入n,符合要求的序列为:第一个数为n,第二个数不大于n,从第三个数起小于前两个数的差的绝对值,后面以此类推.求有多少种序列?答案取模10000(数据:n最大为1000) Sampl ...
- hdu1978 简单记忆化搜索
题意: How many ways Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) T ...
- hdu 1078(记忆化搜索)
题意: 老鼠每次最多走k步停下来,停下的这个位置只能比上一个停留的位置大,并获取其价值,每次只能水平或垂直走,问最大能得到的价值 解题思路:这道题可以用记忆化搜索解决,dp[i][j]表示老鼠在位置( ...
- 思维dp ---- Codeforces Round #711 (Div. 2) - C. Planar Reflections[dp/记忆化搜索]
题目链接 题目大意: 就是给你n个平面和一个寿命为k的衰变粒子.开始粒子从左向右飞行,粒子每经过一个平面就会产生一个副本粒子,这个副本粒子比原粒子的寿命少1,即为k-1,并且飞行方向是原粒子的反方向. ...
- Discovering Gold LightOJ - 1030[概率dp或者记忆化搜索]
题目大意:有一个[1,n][1,n][1,n]的数轴,数轴上的每个对应位置上都有金矿,你初始位置是1,然后你每次都会投色子决定你下一步跳到哪里,如果你跳出了nnn,那么你就要重新投.问你跳到nnn的时 ...
最新文章
- String byte[] stream File之间的相互转换
- NSString字符串常用知识点
- 增强学习(五)----- 时间差分学习(Q learning, Sarsa learning)
- 毕业季,拿走你急需的求职面试技巧
- GDCM:gdcm::FileChangeTransferSyntax的测试程序
- 51nod-诺德街【数学期望】
- Expression Blend 学习视频下载
- mysql 不在另一个表中_MySQL选择查询从表中选择不在另一个表中的行?
- 用Scholar one 投稿过程
- Kafka下载安装及部署
- UAC怎么关闭?电脑的UAC如何关闭
- linux双网卡连不上网,linux 双网卡配置问题
- wamp php 7.0,wamp如何尝鲜php7
- 图解 魔方快速还原 7步法
- Verilog语言初学1
- 【如何使用高级语言在机器语言层面提高程序运行效率】
- 硬核干货:网易云音乐如何做产品创新
- python简单爬虫 指定汉字的笔画动图下载
- gs 服务器文件,服务器gs
- Unity Rigidbody.AddForce 的 ForceMode
热门文章
- apache poi使用例_使用java Apache poi 根据word模板生成word报表例子
- 找出最具竞争力的子序列_每日算法系列【LeetCode 376】摆动序列
- python编程例子-几个Python小案例,爱上Python编程!
- python单词的含义-Python这个单词是什么含义??????????????
- 自学python需要安装什么-Python自学之环境安装
- python网课哪个好-python网课学习笔记--4
- 1.java数组教程及示例知乎
- python的文本编辑geny_android模拟器(genymotion)+appium+python 框架执行基本原理(目前公司自己写的)...
- 301 302区别_302状态码代表什么,302状态码解决方法
- 【滑动窗口】leetcode1456:定长子串中元音的最大数目