1055: [HAOI2008]玩具取名
Description
Input
Output
Sample Input
II
WW
WW
IG
IIII
Sample Output
HINT
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<string>
using namespace std;
int m,n,a,b,ans,c,d,q,r,w[][];
char ch1,ch2;
bool f[][][];
string s,s1;
int main()
{
cin>>a>>b>>c>>d;
for (int i=;i<=a+b+c+d;i++)
//这里我们用一个w数组来储存读入的元素,举个例子,现在w可转换为IG,那么w[i][1]储存I,w[i][2]储存G,w[i][3]则储存w,i的取值由这两个字母是第几个被输入的决定。
if (i>a+b+c) w[i][]=;
else if (i>a+b) w[i][]=;
else if (i>a) w[i][]=;
else w[i][]=;
cin>>s1;
ch1=s1[];
ch2=s1[];
if (ch1=='W') w[i][]=; else if (ch1=='I') w[i][]=;else if (ch1=='N') w[i][]=;else if (ch1=='G') w[i][]=;
if (ch2=='W') w[i][]=; else if (ch2=='I') w[i][]=;else if (ch2=='N') w[i][]=;else if (ch2=='G') w[i][]=;
}
cin>>s;
n=s.size();
for (int i=;i<=n;i++)
for (int j=;j<=n;j++)
for (int k=;k<=;k++)
f[i][j][k]=false; //f[i][j][k]表示这段区间内能否由k转换而来。先全都初始化。
for (int i=;i<=n-;i++)//原先序列中有的先赋值为true,i从0开始是因为c++中字符串中的第一个字符储存在0号位中。
{
if (s[i]=='W') f[i+][i+][]=true;
else if (s[i]=='I') f[i+][i+][]=true;
else if (s[i]=='N') f[i+][i+][]=true;
else if (s[i]=='G') f[i+][i+][]=true;
}
for (int len=;len<=n;len++)//枚举区间长度
for (int i=;i<=n-len+;i++)//区间左边
{
r=i+len-;//区间右边
m=i;//我们通过m把区间分为两部分
while (m<=r-)//枚举m
{
for (int k=;k<=a+b+c+d;k++)//枚举那些转换公式
f[i][r][w[k][]]=(f[i][m][w[k][]])&&(f[m+][r][w[k][]])||(f[i][r][w[k][]]); //核心部分,我们去判断由m分开的区间左部分和右部分,是否刚好可以转换成w[k]这个公式的左边字母和右边字母,(即两边都为TRUE)
若可以,那么这个区间就可以是w[k][3]中的字母转换而来,赋值为TRUE。
m+=;
}
}
ans=;
for (int i=;i<=;i++)
if (f[][n][i]==true) //按顺序输出
{
if (i==) printf("W");
if (i==) printf("I");
if (i==) printf("N");
if (i==) printf("G");
ans+=;//记录是否有答案
}
if (ans==) printf("The name is wrong!");//没答案
return ;
}
唔,复杂度是O(200^3*64),不知是因为实际上没有200^3,还是数据水,还是写着10s的原因,很险地过了。。。。
1055: [HAOI2008]玩具取名的更多相关文章
- BZOJ 1055 [HAOI2008]玩具取名
1055: [HAOI2008]玩具取名 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1119 Solved: 653[Submit][Statu ...
- bzoj 1055 [HAOI2008]玩具取名(区间DP)
1055: [HAOI2008]玩具取名 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1258 Solved: 729[Submit][Statu ...
- Bzoj 1055: [HAOI2008]玩具取名 (区间DP)
Bzoj 1055: [HAOI2008]玩具取名 (区间DP) 题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1055 区间动态规划和可 ...
- 【BZOJ】1055: [HAOI2008]玩具取名(dp)
http://www.lydsy.com/JudgeOnline/problem.php?id=1055 我竟然都没往dp这个方向想.....百度了下看到标题是dp马上就会转移了QAQ... 设d[i ...
- [BZOJ 1055][HAOI2008]玩具取名(DP)
题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1055 分析: 比较难想的dp f[i][j][c]表示i..j能否压缩成字符c 那么怎 ...
- 1055: [HAOI2008]玩具取名 - BZOJ
Description 某人有一套玩具,并想法给玩具命名.首先他选择WING四个字母中的任意一个字母作为玩具的基本名字.然后他会根据自己的喜好,将名字中任意一个字母用“WING”中任意两个字母代替,使 ...
- [BZOJ 1055] [HAOI2008] 玩具取名 【记忆化搜索】
题目链接:BZOJ - 1055 题目分析 这种类似区间 DP 的记忆化搜索都是很相近的,比如字符串压缩和字符串扩展都差不多. 都是将现在 Solve 的区间分成子区间,再求解子区间. 这道题 Sol ...
- BZOJ 1055: [HAOI2008]玩具取名(记忆化搜索)
http://www.lydsy.com/JudgeOnline/problem.php?id=1055 题意: 思路:记忆化搜索. #include<iostream> #include ...
- 1055. [HAOI2008]玩具取名【区间DP】
Description 某人有一套玩具,并想法给玩具命名.首先他选择WING四个字母中的任意一个字母作为玩具的基本名字.然后 他会根据自己的喜好,将名字中任意一个字母用“WING”中任意两个字母代替, ...
随机推荐
- (整理)SQLServer_DBA 工具
本文是SQLserver DBA 相关工具使用资料链接整理. SQLServer DBA 十大工具:http://www.cnblogs.com/fygh/archive/2012/04/25/246 ...
- throw和throws的区别
1. 作用不同: throw用于在程序中抛出异常;throws用于声明在该方法内抛出异常, 2. 使用位置不同:throw位于方法体内部,可以作为单独语句使用,throws必须跟着 ...
- Laxcus大数据管理系统单机集群版
Laxcus大数据管理系统是我们Laxcus大数据实验室历时5年,全体系全功能设计研发的大数据产品,目前的最新版本是2.1版本.从三年前的1.0版本开始,Laxcus大数据系统投入到多个大数据和云计算 ...
- 网络存储技术介绍(2) ( based on zt)
http://www.educity.cn/tx/429084.html 互联网技术DAS.NAS和SAN存储方案的比较 按照设备位置和接入方式,磁盘存储可以分为内置存储和外挂存储,外挂存储又分为直连 ...
- css3颜色
镂空字的2种做法
- easyui1.32 各种问题汇总
问题一 场景:tab切换,每个tab里用div放一个dataGrid,默认display:none隐藏,当display:'block'的时候,dataGrid会显示不全,仅显示一条线. 解决方法:切 ...
- 更好更快更高效解析JSON说明
现在来一个实例解析类,直接就把解析JSON到QVariant去了.唯一不足的是没有搞错误处理,具体方法也请各位自行参考json-c的发行文档,这样比较方便叙述,STL或者Boost我都没有认真接触过, ...
- codeforces 361 E - Mike and Geometry Problem
原题: Description Mike wants to prepare for IMO but he doesn't know geometry, so his teacher gave him ...
- ntc 热敏电阻
来自维基百科 http://zh.wikipedia.org/zh/%E7%83%AD%E6%95%8F%E7%94%B5%E9%98%BB 热敏电阻的电阻值是根据温度由公式计算而来的,知道这一点就 ...
- 使用Trello实现敏捷项目管理
使用Trello实现敏捷项目管理 作者 侯伯薇 发布于 五月 24, 2012 | 1 讨论 新浪微博腾讯微 ...