【BZOJ-1055】玩具取名 区间DP
1055: [HAOI2008]玩具取名
Time Limit: 10 Sec Memory Limit: 162 MB
Submit: 1560 Solved: 907
[Submit][Status][Discuss]
Description
Input
Output
Sample Input
II
WW
WW
IG
IIII
Sample Output
HINT
Source
Solution
区间DP
暴力转移就可以...就是比人家慢个10多倍罢了
f[l][r][k]表示[l,r]是否能压成k
然后枚举区间长度,枚举左端点,枚举WING,枚举WING的每种缩,枚举断点
总之就是暴力转移,然后就可以了
Code
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<map>
using namespace std;
char s[][][],S[],N[],c[];
map<char,int>mp;
bool f[][][];
int main()
{
scanf("%d%d%d%d",&N[],&N[],&N[],&N[]);
mp['W']=,mp['I']=,mp['N']=,mp['G']=;
c[]='W',c[]='I',c[]='N',c[]='G';
for (int i=; i<=; i++)
for (int j=; j<=N[i]; j++)
scanf("%s",s[i][j]+);
scanf("%s",S+); int len=strlen(S+);
for (int i=; i<=len; i++) f[i][i][mp[S[i]]]=;
for (int i=; i<=len; i++)
for (int j=; j<=len; j++)
if (j+i-<=len)
{
int L=j,R=j+i-;
for (int k=; k<=; k++)
for (int l=; l<=N[k]; l++)
for (int m=L; m<R; m++)
f[L][R][k]|=(f[L][m][ mp[ s[k][l][] ]] & f[m+][R][ mp[ s[k][l][] ]]);
}
for (int i=; i<=; i++) if (f[][len][i]) putchar(c[i]);
if (!f[][len][] && !f[][len][] && !f[][len][] && !f[][len][]) puts("The name is wrong!");
return ;
}
【BZOJ-1055】玩具取名 区间DP的更多相关文章
- BZOJ 1055 玩具取名(区间DP)
很显然的区间DP,定义dp[i][j][k], 如果dp[i][j][k]=1表示字符串[i,j]可以组成k字符. # include <cstdio> # include <cst ...
- Bzoj 1055: [HAOI2008]玩具取名 (区间DP)
Bzoj 1055: [HAOI2008]玩具取名 (区间DP) 题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1055 区间动态规划和可 ...
- Bzoj 1055 玩具取名(区间DP)
题面 题解 字符很麻烦,不妨用数字代替(比如1代表'W') const char c[5] = {0, 'W', 'I', 'N', 'G'}; 接着,像这种两个子串可以合并成另一个子串的题可以考虑区 ...
- BZOJ1055: [HAOI2008]玩具取名[区间DP]
1055: [HAOI2008]玩具取名 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1588 Solved: 925[Submit][Statu ...
- BZOJ 1055 玩具取名
Description 某人有一套玩具,并想法给玩具命名.首先他选择WING四个字母中的任意一个字母作为玩具的基本名字.然后他会根据自己的喜好,将名字中任意一个字母用“WING”中任意两个字母代替,使 ...
- bzoj1055玩具取名——区间DP
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1055 区间DP,注意初始化!! 因为没记忆化,TLE了一晚上,区间DP尤其要注意不重复递归! ...
- bzoj1055: [HAOI2008]玩具取名(dp)
1055: [HAOI2008]玩具取名 题目:传送门 简要题意: 就是固定四个字母,给出这四个字母分别可以由哪两个字母组成,然后在给你一个字符串,要求把这个字符串还原成原始的四个字母的其中一个. 题 ...
- BZOJ 1260&UVa 4394 区间DP
题意: 给一段字符串成段染色,问染成目标串最少次数. SOL: 区间DP... DP[i][j]表示从i染到j最小代价 转移:dp[i][j]=min(dp[i][j],dp[i+1][k]+dp[k ...
- BZOJ 2933([Poi1999]地图-区间Dp)
2933: [Poi1999]地图 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 7 Solved: 7 [ Submit][ Status] ...
随机推荐
- C# 断点续传原理与实现
在了解HTTP断点续传的原理之前,让我们先来了解一下HTTP协议,HTTP协议是一种基于tcp的简单协议,分为请求和回复两种.请求协议是由 客户机(浏览器)向服务器(WEB SERVER)提交请求时发 ...
- django整合原有的mysql数据库
虽然django适合从零开始构建一个项目,但有时候整合原有的数据库也在所难免,下面以django整合我的mysql作说明. mysql数据是我从京东上抓取的数据,数据表名为jd,演示如图 下面将jd整 ...
- Meet Python: little notes 3 - function
Source: http://www.liaoxuefeng.com/ ♥ Function In python, name of a function could be assigned to a ...
- Flex ActionScript版本的Map类型
ActionScript中没有Map类型,因为Object就相当于Map了.Object的属性相当于key,值相当于value. 也就是说,没有必要有Map类型.但是,这样做,也会带来一些问题,造成不 ...
- node基础02:第一个node程序
1.第一个web服务器 var http = require("http"); http.createServer(function(request, response){ res ...
- iis7配置网站容易出现的问题(转)
来源: http://www.cnblogs.com/5426z/articles/4865022.html 1.64位操作系统 access数据库提示:未在本地计算机上注册"Microso ...
- Python【map、reduce、filter】内置函数使用说明(转载)
转自:http://www.blogjava.net/vagasnail/articles/301140.html?opt=admin 介绍下Python 中 map,reduce,和filter 内 ...
- 检测IE浏览器方法
var isIE=function(){ var b=document.createElement("b"); b.innerHTML="<!--[if IE]&g ...
- CSS中的行为——expression
IE5及其以后版本支持在CSS中使用expression,用来把CSS属性和Javascript脚本关联起来,这里的CSS属性可以是元素固有的属性,也可以是自定义属性.就是说CSS属性后面可以是一段J ...
- yii2权限控制rbac之详细操作步骤
本篇的主题是 rbac权限控制的详细操作步骤,注意是操作步骤哦,关于配置与rbac的搭建,我们在博文 yii2搭建完美后台并实现rbac权限控制实例教程说的再清楚不过了. 但是,在很多人的反馈下,说是 ...