题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1055

区间DP,注意初始化!!

因为没记忆化,TLE了一晚上,区间DP尤其要注意不重复递归!!!!!

代码如下:

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int const MAXN=,LEN=;
int p[][][MAXN],a[LEN],top[],ln,tp[][];
char dc[LEN];
bool can[LEN][LEN][],flag,f[],vis[LEN][LEN];
int in(char c)
{
if(c=='W')return ;
if(c=='I')return ;
if(c=='N')return ;
if(c=='G')return ;
}
char out(int x)
{
flag=;
if(x==)return 'W';
if(x==)return 'I';
if(x==)return 'N';
if(x==)return 'G';
}
void cl(int i,char c[])
{
int k1=in(c[]),k2=in(c[]);
p[k1][k2][++tp[k1][k2]]=i;
}
//void find0(int x,int y)
//{
// for(int i=1;i<=tp[x][y];i++)
// f[p[x][y][i]]=1;
//}
//void find(int l,int r,int x,int y)
//{
// for(int i=1;i<=tp[x][y];i++)
// can[l][r][p[x][y][i]]=1;
//}
void dp(int l,int r)
{
if(vis[l][r])return;//大剪枝!!!!!
vis[l][r]=;
if(r==l)
// {
// find(l,r,a[l],a[r]);
return;
// }
for(int k=l;k<r;k++)
{
dp(l,k);
dp(k+,r);
for(int x=;x<=;x++)
for(int y=;y<=;y++)
if(can[l][k][x]&&can[k+][r][y])
for(int i=;i<=tp[x][y];i++)
can[l][r][p[x][y][i]]=;
// find(l,r,x,y);
}
}
int main()
{
for(int i=;i<=;i++)
scanf("%d",&top[i]);
for(int i=;i<=;i++)
for(int j=;j<=top[i];j++)
{
cin>>dc;
cl(i,dc);
}
cin>>dc;
ln=strlen(dc);
for(int i=;i<=ln;i++)//初始化
{
can[i][i][in(dc[i-])]=;
// p[dc[i-1]][dc[i-1]][++tp[dc[i-1]][dc[i-1]]]=in(dc[i-1]);
}
for(int k=;k<ln;k++)
{
dp(,k);
dp(k+,ln);
for(int x=;x<=;x++)
for(int y=;y<=;y++)
if(can[][k][x]&&can[k+][ln][y])
for(int i=;i<=tp[x][y];i++)
f[p[x][y][i]]=;
// find0(x,y);
}
for(int i=;i<=;i++)
if(f[i])printf("%c",out(i));
if(!flag)printf("The name is wrong!");
return ;
}

bzoj1055玩具取名——区间DP的更多相关文章

  1. Bzoj 1055: [HAOI2008]玩具取名 (区间DP)

    Bzoj 1055: [HAOI2008]玩具取名 (区间DP) 题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1055 区间动态规划和可 ...

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

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

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

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

  4. BZOJ 1055 玩具取名(区间DP)

    很显然的区间DP,定义dp[i][j][k], 如果dp[i][j][k]=1表示字符串[i,j]可以组成k字符. # include <cstdio> # include <cst ...

  5. bzoj1055: [HAOI2008]玩具取名(dp)

    1055: [HAOI2008]玩具取名 题目:传送门 简要题意: 就是固定四个字母,给出这四个字母分别可以由哪两个字母组成,然后在给你一个字符串,要求把这个字符串还原成原始的四个字母的其中一个. 题 ...

  6. bzoj1055玩具取名

    区间dp.记录可行性即可. #include<iostream> #include<cstdio> #include<cstring> using namespac ...

  7. 【BZOJ】1055: [HAOI2008]玩具取名(dp)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1055 我竟然都没往dp这个方向想.....百度了下看到标题是dp马上就会转移了QAQ... 设d[i ...

  8. [BZOJ 1055][HAOI2008]玩具取名(DP)

    题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1055 分析: 比较难想的dp f[i][j][c]表示i..j能否压缩成字符c 那么怎 ...

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

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

随机推荐

  1. 转载 ---资深HR告诉你:我如何筛选简历与选择人员的

    资深HR告诉你:我如何筛选简历与选择人员的   有个公司HR看简历 先直接丢掉一半 理由是不要运气不好的应聘者. 当然这可能只是某些HR面对太多的简历产生了偷懒的情绪,但是不论是Manager,亦或是 ...

  2. TP框架---thinkphp基础知识

    php框架    发瑞 一.真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项目,十分困 ...

  3. CSS定位细节

    记住此三句话,很好的解决了关于浮动方面的问题: 1.浮动的元素对于没有设置浮动的元素来说是不存在的,浮动的元素将会覆盖没有浮动的元素 如图:先让d1浮动在left ,d2位置不浮动,d1覆盖了d2之上 ...

  4. 【题解】CF359B Permutation

    [题解]CF359B Permutation 求一个长度为\(2n\)的序列,满足\(\Sigma |a_{2i}-a_{2i-1}|-|\Sigma a_{2i}-a_{2i-1}|=2k\) 这种 ...

  5. Wix Burn运行64位dism.exe的问题

    主要的问题是Burn是一个32位程序,在64位机器上它启动的进程都会被重定向到wow64目录下,也就是说它运行的dism.exe最终会是32位的.解决的方法就是用wix提供的QtExec64CmdLi ...

  6. Django项目之【学员管理系统】

    Django项目[学员管理系统] 项目规划阶段 项目背景 现实生活中,特别是在学校,传统的excel统计管理学员信息的方式已经无法满足日渐增长的业务需求. 因此需一套方便易用的“学员管理系统”,来提高 ...

  7. Coursera公开课Functional Programming Principles in Scala习题解答:Week 2

    引言 OK.时间非常快又过去了一周.第一周有五一假期所以感觉时间绰绰有余,这周中间没有假期仅仅能靠晚上加周末的时间来消化,事实上还是有点紧张呢! 后来发现每堂课的视频还有相应的课件(Slide).字幕 ...

  8. 公司IIS 项目公布 注意点

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/sat472291519/article/details/24010721 IIS - 右键 - 属性 ...

  9. Swift语言概览

                     Swift语言概览 关于 这篇文章简要介绍了苹果于WWDC 2014公布的编程语言--Swift. 前言 在这里我觉得有必要提一下Brec Victor的Invent ...

  10. php 文件头部(header)

    发布:sunday01   来源:net     [大 中 小] 有关php文件头部信息(header)的详细介绍,是脚本学堂见过的最详细的一篇,有需要的朋友,千万不要错过这么好的文章. php文件头 ...