题目描述 Description

发生了这么多,贝茜已经忘记了她cowtube密码。然而,她记得一些有用的信息。首先,她记得她的密码(记为变
量P)长度为L(1 <= L<=1,000)字符串,并可以被分成 一个或多个词(不一定是唯一的),词来自于字典中NW(
1<=NW<=1,000)个独特的词。 一个词W_i,被定义为一个长度1..20的小写字母序列('a'..'z')。她还记得她密码
中某些字母的位置。
请看下面的例子。
贝西知道她的密码看起来像"a??l?ban???????"('?'代表一个字母,她不记得),
她的字典里有下面的词:
apple
cow
farmer
banana
bananas
pies
贝西有两个可能的密码是的“applebananapies”和“applebananascow”。
给你字典,贝西记得的字母,请找到她的密码。如果有一个以上的密码是可能的,找到字典序最前的。

输入描述 Input Description

第1行:两个空格分隔的整数:L和NW
第2行:一个字符串,长度为L:P
*第3..N+2W行:第I+2行包含在字典中的第i个字:W_i

输出描述 Output Description

第1行:密码

样例输入 Sample Input

15 6
a??l?ban???????
apple
cow
farmer
banana
bananas
pies

样例输出 Sample Output

applebananapies

数据范围及提示 Data Size & Hint

之前的一些废话

题解

看上去是DP,我觉得实际上是贪心,一阵xjb写就过了

代码

#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<cstdio>
#include<queue>
#include<cstdlib>
using namespace std;
typedef long long LL;
#define mem(a,b) memset(a,b,sizeof(a))
typedef pair<int,int> PII;
#define X first
#define Y second
inline int read()
{int x=0,f=1;char c=getchar();while(!isdigit(c)){if(c=='-')f=-1;c=getchar();}while(isdigit(c)){x=x*10+c-'0';c=getchar();}return x*f;
}
const int maxn=1010;
int len,n,l[maxn];
char s[maxn];
string word[maxn],dp[maxn];
int main()
{len=read();n=read();scanf("%s",s+1);for(int i=0;i<n;i++)cin>>word[i];sort(word,word+n);for(int i=0;i<n;i++)l[i]=word[i].length();for(int i=1;i<=len;i++){for(int j=0;j<n;j++){if(i<l[j])continue;if(i-l[j]!=0 && dp[i-l[j]]=="")continue; bool ok=0;for(int k=0;k<l[j];k++)if(s[i-l[j]+k+1]!='?')if(s[i-l[j]+k+1]!=word[j][k]){ok=1;break;} if(ok)continue;if(dp[i]=="" || dp[i]>dp[i-l[j]]+word[j])dp[i]=dp[i-l[j]]+word[j];}}cout<<dp[len];return 0;
}

总结

转载于:https://www.cnblogs.com/FYH-SSGSS/p/8526227.html

[BZOJ3297][USACO2011 Open]forgot相关推荐

  1. 最长字符子串c语言,c语言:最长对称子串(3种解决方案)

    问题描述: 输入一个字符串,输出该字符串中最大对称子串的长度.例如输入字符串:"avvbeeb",该字符串中最长的子字符串是"beeb",长度为4,因而输出为4 ...

  2. [攻防世界 pwn]——forgot

    [攻防世界 pwn]--forgot 题目地址: https://adworld.xctf.org.cn/ 题目: 在checksec看下保护 在IDA中, 竟然有后面函数, 找到sub_80486C ...

  3. 「BZOJ2200」[Usaco2011 Jan] 道路和航线 - 最短路+拓扑排序

    ->点我进原题 [Usaco2011 Jan]道路和航线 Time Limit: 10 Sec Memory Limit: 259 MB Submit: 1116 Solved: 410 Des ...

  4. BZOJ 2442: [Usaco2011 Open]修剪草坪( dp )

    dp dp[ i ] 表示第 i 个不选 , 前 i 个的选择合法的最小损失 , dp[ i ] = min( dp[ j ] ) ( max( 0 , i - 1 - k ) <= j < ...

  5. 【BZOJ】【3301】【USACO2011 Feb】Cow Line

    康托展开 裸的康托展开&逆康托展开 康托展开就是一种特殊的hash,且是可逆的-- 康托展开计算的是有多少种排列的字典序比这个小,所以编号应该+1:逆运算同理(-1). 序列->序号:( ...

  6. bzoj 2442: [Usaco2011 Open]修剪草坪(单调队列)

    2442: [Usaco2011 Open]修剪草坪 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 1175  Solved: 602 [Submi ...

  7. Room cannot verify the data integrity. Looks like you‘ve changed schema but forgot to update the ve

    背景: 在使用Room 数据库时,出现了该错误信息 Room cannot verify the data integrity. Looks like you've changed schema bu ...

  8. forgot XCTF(你的疑问都可以在这里找到答案)

    基本操作这里就不多说啦 直接进入正题 执行文件呢 会看到是关于有限状态自动机会不会被吓到呢(纳尼!?) 哈哈 其实是吓唬我们的 下面是主程序的关键部分 已知 char v2[32] 那strlen(v ...

  9. Apache 安装出现 Failed to open the Windows service manager, perhaps you forgot to log in as Adminstrator

    Apache 安装出现 Failed to open the Windows service manager, perhaps you forgot to log in as Adminstrator ...

  10. 攻防世界 pwn forgot

    下面记录一下我在做攻防世界的pwn练习题中的forgot题目的过程,这个题目现在还是有些疑惑的 首先我们看一下题目的安全机制: 然后IDA看一下主函数: int __cdecl main() {siz ...

最新文章

  1. java日期相关的类正则表达式
  2. webservice中cxf框架的HelloWord
  3. Spring全局异常处理
  4. 2018 年值得关注的 Web 设计趋势
  5. 石川es6课程---17、ES7 预览
  6. python的实现和测试是啥意思_Python接口自动化测试之pytest与unittest区别
  7. Redis整合Spring结合使用缓存实例(转)
  8. 购进不需要安装的生产设备_静压砖机设备生产环境的选择及安装前期事项分析...
  9. code ./打不开vscode编辑器
  10. 九个著名科技公司的十位CEO的办公桌照片
  11. Java导出源程序_JAVA导出项目的所有源代码到一个文件
  12. ZOJ Monthly, March 2018
  13. eclipse混淆打包出错
  14. Yarn 和 NPM 国内快速镜像(淘宝镜像)
  15. [电动智能汽车-7]:汽车CAN总线详解
  16. 高斯过程回归matlab,高斯过程回归及其应用.PDF
  17. 40K成功入职:六年开发终获小米Offer(附面经+面试题+答案详解)
  18. HDU-4417 Super Mario (主席树)
  19. BackTrack5(BT5)硬盘安装
  20. qq农场服务器显示忙是什么原因,QQ农场关于游戏显示系统繁忙处理方法分享

热门文章

  1. java集合框架之Collection
  2. ubuntu 重设crontab -e的默认编辑器
  3. linux ulimit知识
  4. hdu - 5033 - Building(单调栈)
  5. testlink配置修改
  6. Linux网络基础番外篇(IP、MAC、TCP)
  7. linux增加虚拟内存
  8. 《重构-改善既有代码的设计》读书笔记
  9. OSPFv2的综合实验试题分析第2例(CCNP阶段)
  10. 对象关系映射文件详解