bzoj1055玩具取名——区间DP
题目: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的更多相关文章
- Bzoj 1055: [HAOI2008]玩具取名 (区间DP)
Bzoj 1055: [HAOI2008]玩具取名 (区间DP) 题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1055 区间动态规划和可 ...
- BZOJ1055: [HAOI2008]玩具取名[区间DP]
1055: [HAOI2008]玩具取名 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1588 Solved: 925[Submit][Statu ...
- 【BZOJ-1055】玩具取名 区间DP
1055: [HAOI2008]玩具取名 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1560 Solved: 907[Submit][Statu ...
- BZOJ 1055 玩具取名(区间DP)
很显然的区间DP,定义dp[i][j][k], 如果dp[i][j][k]=1表示字符串[i,j]可以组成k字符. # include <cstdio> # include <cst ...
- bzoj1055: [HAOI2008]玩具取名(dp)
1055: [HAOI2008]玩具取名 题目:传送门 简要题意: 就是固定四个字母,给出这四个字母分别可以由哪两个字母组成,然后在给你一个字符串,要求把这个字符串还原成原始的四个字母的其中一个. 题 ...
- bzoj1055玩具取名
区间dp.记录可行性即可. #include<iostream> #include<cstdio> #include<cstring> using namespac ...
- 【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 那么怎 ...
- [bzoj1055][HAOI2008]玩具取名_区间dp
玩具取名 bzoj-1055 HAOI-2008 题目大意:给你一个用W,I,N,G组成的字符串,给你一些这四个字符之间的变换规则,每一个变换规则都是由一个字符变成两个字符,问这个字符串是否可能是由一 ...
随机推荐
- 有两个好友A和B,住在一片长有蘑菇的由n*m个方格组成的草地,A在(1,1),B在(n,m)。现在A想要拜访B,由于她只想去B的家,所以每次她只会走(i,j+1)或(i+1,j)这样的路线,在草地上有k个蘑菇种在格子里(多个蘑菇可能在同一方格),问:A如果每一步随机选择的话(若她在边界上,则只有一种选择),那么她不碰到蘑菇走到B的家的概率是多少?
第二种方法:首先分析题意,可用概率的方法来计算,做了好几道百度的题目,觉得大多数是再考概率论,所以首先要弄懂题意,最后做题前把公式写出来,这样编码时才能游刃有余. 本题中下面的第一种用迭代枚举的方法来 ...
- 解决php网页运行超时问题:Maximum execution time of 30 seconds exceeded
Fatal error: Maximum execution time of 30 seconds exceeded in C:\Inetpub\wwwroot\ry.php on line 11 意 ...
- Unity3D GUI中的图片尾随鼠标旋转脚本
var Mid : Texture2D; var mouse : Texture2D; //鼠标图片 var mousePs = Vector2.zero; //鼠标的位置 private var a ...
- 《Java设计模式》之构建者模式
概述: 构造者模式(Builder Pattern):构造者模式将一个复杂对象的构造过程和它的表现层分离开来.使得相同的构建过程能够创建不同的表示,又称为生成器模式. Bu ...
- MySQL CREATE TRIGGER (1)
CREATE TRIGGER语法 CREATE TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW ...
- python 基础 4.0 函数的一般形式及传参
#/usr/bin/python #coding=utf-8 #@Time :2017/10/23 15:58 #@Auther :liuzhenchuan #@File :函数的一般形式.p ...
- 五个知识体系之-SQL学习-第一天
1. 创建数据库 CREATE DATABASE test1; 2. 删除数据库 DROP DATABASE test1; 3. 创建表 CREATE TABLE tabname (userid BI ...
- EasyDSS RTMP流媒体服务器web前端:vue组件之间的传值,父组件向子组件传值
之前接触最多的都是EasyNVR,主要针对的都是前端的一些问题.也有接触到一些easydss流媒体服务器. 前端方面的,EasyDSS流媒体服务器与EasyNVR有着根本的不同.EasyNVR使用的是 ...
- 基于GeoEvent Processor的物联网应用案例赏析
1 技术路线 下面全部应用,都採用ArcGIS for Server,结合GeoEvent产品(为一款物联网实时数据集成处理产品)开发完毕. 2 应用场景 1.1 物联网实时态势感知 1.1.1 ...
- FI模块与SD、MM的接口配置方法
[转自 http://blog.itpub.net/195776/viewspace-1023910/] 1 FI/SD 借口配置FI/SD通过tcode VKOA为billing设置过帐科目,用户可 ...