区间dp。记录可行性即可。

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int c[],len;
bool f[][][],mp[][],flag;
char ch1,ch2;
char gt()
{
char tmp;
scanf("%c",&tmp);
while(tmp<||tmp>)scanf("%c",&tmp);
return tmp;
}
int num(char c)
{
if(c=='W')return ;if(c=='I')return ;
if(c=='N')return ;if(c=='G')return ;
}
char chr(int a)
{
if(a==)return 'W';if(a==)return 'I';
if(a==)return 'N';if(a==)return 'G';
}
int main()
{
scanf("%d%d%d%d",&c[],&c[],&c[],&c[]);
for(int i=;i<=;i++)
for(int j=;j<=c[i];j++)
{
scanf(" %c%c",&ch1,&ch2);
mp[num(ch1)*+num(ch2)][i]=;
}
ch1=gt();
while(++len)
{
f[len][len][num(ch1)]=;
scanf("%c",&ch1);
if(ch1=='\n')break;
}
for(int i=;i<=len;i++)
{
int lm=len-i+;
for(int l=;l<=lm;l++)
{
int r=l+i-;
for(int k=l;k<r;k++)
for(int x=;x<=;x++)
if(f[l][k][x])
for(int y=;y<=;y++)
if(f[k+][r][y])
for(int j=;j<=;j++)
f[l][r][j]|=mp[x*+y][j];
}
}
for(int i=;i<=;i++)
if(f[][len][i])printf("%c",chr(i)),flag=;
if(!flag)printf("The name is wrong!");
return ;
}

bzoj1055玩具取名的更多相关文章

  1. bzoj1055玩具取名——区间DP

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1055 区间DP,注意初始化!! 因为没记忆化,TLE了一晚上,区间DP尤其要注意不重复递归! ...

  2. 【BZOJ1055】[HAOI2008]玩具取名(动态规划)

    [BZOJ1055][HAOI2008]玩具取名(动态规划) 题面 BZOJ 洛谷 题解 裸的区间\(dp\),设\(f[i][j][W/I/N/G]\)表示区间\([i,j]\)能否由某个字母替换过 ...

  3. 【bzoj1055】[HAOI2008]玩具取名

    [bzoj1055][HAOI2008]玩具取名 2014年12月1日3,0111 Description 某人有一套玩具,并想法给玩具命名.首先他选择WING四个字母中的任意一个字母作为玩具的基本名 ...

  4. [bzoj1055][HAOI2008]玩具取名_区间dp

    玩具取名 bzoj-1055 HAOI-2008 题目大意:给你一个用W,I,N,G组成的字符串,给你一些这四个字符之间的变换规则,每一个变换规则都是由一个字符变成两个字符,问这个字符串是否可能是由一 ...

  5. BZOJ1055: [HAOI2008]玩具取名[区间DP]

    1055: [HAOI2008]玩具取名 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1588  Solved: 925[Submit][Statu ...

  6. BZOJ1055: [HAOI2008]玩具取名

    ... #include<bits/stdc++.h> using namespace std; int q[255]; char s[205]; char p[]={'W','I','N ...

  7. 【BZOJ-1055】玩具取名 区间DP

    1055: [HAOI2008]玩具取名 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1560  Solved: 907[Submit][Statu ...

  8. bzoj千题计划199:bzoj1055: [HAOI2008]玩具取名

    http://www.lydsy.com/JudgeOnline/problem.php?id=1055 区间DP dp[i][j][k] 表示区间[i,j]能否合成k #include<cst ...

  9. 【BZOJ1055】[HAOI2008]玩具取名(区间DP)

    [HAOI2008]玩具取名 题目描述 某人有一套玩具,并想法给玩具命名.首先他选择\(WING\)四个字母中的任意一个字母作为玩具的基本名字.然后他会根据自己的喜好,将名字中任意一个字母用" ...

随机推荐

  1. EBS 快速创建供应商的标准创建逻辑

    该页面经过了客户化,只保留了这三个字段. 点击应用时执行 oracle.apps.pos.supplier.webui.SuppCrtCO String s29 = (String)((OAAppli ...

  2. Centos7上部署openstack ocata配置详解

    之前写过一篇<openstack mitaka 配置详解>然而最近使用发现阿里不再提供m版本的源,所以最近又开始学习ocata版本,并进行总结,写下如下文档 OpenStack ocata ...

  3. mongodb控制台中文乱码

    问题描述: 使用命令行打开mongo,查询的结果里中文都是乱码,检查了文件编码均正常: 解决方法: 该问题是cmd字体引起的,设置cmd的字体即可,cmd的默认字体是“点阵字体”,选择其他两个均可,如 ...

  4. 066——VUE中vue-router之rewrite模式下配置404页面

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. mkfs.ext3 option

    mkfs.ext3 OPTIONS -b block-size Specify  the  size  of blocks in bytes.  Valid block-size values are ...

  6. (剑指Offer)面试题59:对称的二叉树

    题目: 请实现一个函数,用来判断一颗二叉树是不是对称的. 注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的. 思路: 对于一棵二叉树,从根结点开始遍历, 如果左右子结点有一个为NULL,那 ...

  7. kettle使用命令行来运行ktr和kjb

    1:cmd方式运行 1.ktr的运行:运行transformation文件是通过Pan.bat来运行的. 打开cmd命令行窗口,转到Pan.bat所在的目录,如d:\data-integration, ...

  8. DBLookupComboBox 的初始值

    http://www.yourdelphi.com/topic_234544_e6b7.htm 试下在form的oncreate中加入 dblookupcombobox1.keyvalue:=tabl ...

  9. python元组()小括号

    names = ('jack','rose','tom','jerry','james','jerry') print(names) print(names[0]) #使用元组中的元素 print(n ...

  10. matplotlib小示例

    matplotlib 画廊  http://matplotlib.org/gallery.html import numpy as np import matplotlib.pyplot as plt ...