「BZOJ1055」[HAOI2008] 玩具取名 - 区间动规 - 记忆化搜索
->戳我进原题
[HAOI2008]玩具取名
Time Limit: 10 Sec Memory Limit: 162 MB
Submit: 2486 Solved: 1448
Description
某人有一套玩具,并想法给玩具命名。首先他选择WING四个字母中的任意一个字母作为玩具的基本名字。然后
他会根据自己的喜好,将名字中任意一个字母用“WING”中任意两个字母代替,使得自己的名字能够扩充得很长。
现在,他想请你猜猜某一个很长的名字,最初可能是由哪几个字母变形过来的。
Input
第一行四个整数W、I、N、G。表示每一个字母能由几种两个字母所替代。接下来W行,每行两个字母,表示W可
以用这两个字母替代。接下来I行,每行两个字母,表示I可以用这两个字母替代。接下来N行,每行两个字母,表示N
可以用这两个字母替代。接下来G行,每行两个字母,表示G可以用这两个字母替代。最后一行一个长度不超过Len的
字符串。表示这个玩具的名字。
Output
一行字符串,该名字可能由哪些字母变形而得到。(按照WING的顺序输出)如果给的名字不能由任何一个字母
变形而得到则输出“The name is wrong!”
Sample Input
1 1 1 1
II
WW
WW
IG
IIII
Sample Output
IN
Hint
W可以变成II所以IIII可以缩成WW IN均能变成WW所以WW又可以缩成I或者N 所以最终答案应该按照“WING”的顺序输出IN
[数据范围]
\(100\)% 数据满足Len<= \(200\),W、I、N、G<= \(16\)
分析
DP,写的记忆化搜索。f[i][j][k]表示区间[i,j]能否转化成k
代码
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
char s[210];
int num[5],list[210][3],tot,f[210][210][5],len;
bool p;
inline int check(char i){ if(i=='W') return 1; if(i=='I') return 2; if(i=='N') return 3; if(i=='G') return 4;
}
int main(){for(register int i=1;i<=4;++i) scanf("%d\n",&num[i]); for(register int i=1;i<=4;++i){for(register int j=1;j<=num[i];++j){ char ss[5]; scanf("%s",ss); list[++tot][0]=i;list[tot][1]=check(ss[0]);list[tot][2]=check(ss[1]);}getchar(); } gets(s+1); len=strlen(s+1); for(register int i=1;i<=len;++i) f[i][i][check(s[i])]=1; for(register int i=len;i>0;--i) for(register int j=i+1;j<=len;++j) for(register int k=i;k<j;++k) for(register int l=1;l<=tot;++l) if(f[i][k][list[l][1]]&&f[k+1][j][list[l][2]]) f[i][j][list[l][0]]=1; for(register int i=1;i<=4;++i) if(f[1][len][i]){ p=1; if(i==1) printf("W"); if(i==2) printf("I"); if(i==3) printf("N"); if(i==4) printf("G"); } if(!p) printf("The name is wrong!\n"); return 0;
}
转载于:https://www.cnblogs.com/horrigue/p/9617913.html
「BZOJ1055」[HAOI2008] 玩具取名 - 区间动规 - 记忆化搜索相关推荐
- BZOJ1055: [HAOI2008]玩具取名[区间DP]
1055: [HAOI2008]玩具取名 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 1588 Solved: 925 [Submit][Sta ...
- bzoj1055 [HAOI2008]玩具取名 区间DP
问题描述 某人有一套玩具,并想法给玩具命名.首先他选择WING四个字母中的任意一个字母作为玩具的基本名字.然后 他会根据自己的喜好,将名字中任意一个字母用"WING"中任意两个字母 ...
- c++ 记忆化搜索_2010/12区间动态规划及记忆化搜索
相关发表文章:2012/12由怎样画马谈培养动漫课程教师的专业素养2012/0708通达网络中可信的n%谈网络批判性思维的养成2011/1516信息学奥赛大家谈2008/02解读高中信息技术教学理念中 ...
- bzoj 1055: [HAOI2008]玩具取名(区间DP)
1055: [HAOI2008]玩具取名 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 2010 Solved: 1177 [Submit][St ...
- BZOJ 1055 [HAOI2008]玩具取名
1055: [HAOI2008]玩具取名 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 1119 Solved: 653 [Submit][Sta ...
- [HAOI2008]玩具取名
[HAOI2008]玩具取名 文章目录 题目描述 输出描述: 题解 代码: 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO F ...
- 蓝桥杯 乘积最大(区间dp+记忆化搜索)
问题描述 今年是国际数学联盟确定的"2000--世界数学年",又恰逢我国著名数学家华罗庚先生诞辰90周年.在华罗庚先生的家乡江苏金坛,组织了一场别开生面的数学智力竞赛的活动,你的一 ...
- Palindrome subsequence HDU - 4632 区间dp|记忆化搜索
// 区间dp import java.util.Scanner;/**** @author CN*/ public class main {static int mod = 10007;static ...
- Codeforces 1293 E. Xenon‘s Attack on the Gangs —— 树上记忆化搜索,单点加改成区间加,有丶东西
This way 题意: 现在有一棵大小为n的树,你要往边上放0~n-2这n-1个数,定义mex(u,v)表示u到v路径上的第一个未出现的自然数,定义S 问你S最大是多少. 题解: 我感觉这道题绝不止 ...
最新文章
- ReactNative windows下打包生成安卓apk
- 【UWB】公式推导计算坐标值
- php 502.88,Nginx+PHP-FPM 访问出现 502错误
- DSP F28335的SCI模块
- 帆软报表登录-某些用户需要用自定义的登陆界面,有些用户用默认登录界面
- 中国替扎尼定行业市场供需与战略研究报告
- wacom linux 驱动下载,Ubuntu 8.04如何安装WACOM驱动
- 什么是弱网测试?为什么要进行弱网测试?怎么进行弱网测试?
- 修改服务器电脑mac地址,修改服务器电脑mac地址
- 推荐 5 个优秀的 Javascript 图标库
- Matlab滤波器设计与滤波器特性分析(sptool、filterdesigner)
- 基于StackGAN++、CycleGAN的图像生成工具,开源
- 微信小程序:音乐项目
- RTC月度小报5月 |教育aPaaS灵动课堂升级、抢先体验VUE版 Agora Web SDK、声网Agora与HTC达成合作
- baseservlet怎么写_BaseServlet
- 神马笔记 版本1.8.0——删除笔记/文件夹·代码篇
- ZooKeeper 命令操作
- html如何调用js的函数返回值,CDHtmlDialog实现调用html中js函数-江湖宵小-搜狐空间...
- windowns server 2012 R2 启动U盘制作
- 抓取5W数据,解密「原价收+1.5折卖」的二手书小程序
热门文章
- 未来CPU内核将更简单!
- python turtle库画图案-python之绘制图形库turtle(转)
- vscode使用教程python-如何在VSCode上轻松舒适的配置Python的方法步骤
- python爬虫图片-如何用Python来制作简单的爬虫,爬取到你想要的图片
- python入门有基础-Python入门学习难吗,新手如何学习
- python自学步骤-学习Python最正确的步骤(0基础必备)
- python编程自学能学会吗-python编程还能自学?怎么能学好? - 【大连东软睿道】
- python教程txt免费下载-python编程从入门到实践PDF电子书教程免费下载
- 下面不属于python第三方库的安装方法的是-Python第三方库安装和卸载
- python3爬虫实例-python3 网络爬虫 实例1