bzoj 1055: [HAOI2008]玩具取名(区间DP)
1055: [HAOI2008]玩具取名
Time Limit: 10 Sec Memory Limit: 162 MB
Submit: 2010 Solved: 1177
[Submit][Status][Discuss]
Description
Input
Output
Sample Input
Sample Output
dp[i][j][1]表示区间[i, j]是否可以用字母'W'表示
dp[i][j][2]表示区间[i, j]是否可以用字母'I'表示
dp[i][j][3]表示区间[i, j]是否可以用字母'N'表示
dp[i][j][4]表示区间[i, j]是否可以用字母'G'表示(1or0)
如果dp[i][j][1]==1,dp[j+1][k][2]==1,并且'WI'可以用'N'表示,那么dp[i][k][3]=1
其它同理
复杂度O(64n^3)
#include<stdio.h>
#include<string.h>
char str[205];
int a[66], b[66], c[66], dp[205][205][5];
int Jud(char ch)
{switch(ch){case 'W': return 1;case 'I': return 2;case 'N': return 3;default: return 4;}
}
int main(void)
{int n, m, i, j, k, p;scanf("%d%d%d%d", &n, &j, &k, &p);for(i=1;i<=n;i++){scanf("%s", str+1);a[i] = Jud(str[1]);b[i] = Jud(str[2]);c[i] = 1;}for(i=n+1;i<=n+j;i++){scanf("%s", str+1);a[i] = Jud(str[1]);b[i] = Jud(str[2]);c[i] = 2;}for(i=n+j+1;i<=n+j+k;i++){scanf("%s", str+1);a[i] = Jud(str[1]);b[i] = Jud(str[2]);c[i] = 3;}for(i=n+j+k+1;i<=n+j+k+p;i++){scanf("%s", str+1);a[i] = Jud(str[1]);b[i] = Jud(str[2]);c[i] = 4;}m = n+j+k+p;scanf("%s", str+1);n = strlen(str+1);for(i=1;i<=n;i++)dp[i][i][Jud(str[i])] = 1;for(k=1;k<=n-1;k++){for(i=1;i+k<=n;i++){for(j=1;j<=i+k-1;j++){for(p=1;p<=m;p++){if(dp[i][j][a[p]] && dp[j+1][i+k][b[p]])dp[i][i+k][c[p]] = 1;}}}}if(dp[1][n][1]==0 && dp[1][n][2]==0 && dp[1][n][3]==0 && dp[1][n][4]==0)printf("The name is wrong!");if(dp[1][n][1])printf("W");if(dp[1][n][2])printf("I");if(dp[1][n][3])printf("N");if(dp[1][n][4])printf("G");printf("\n");return 0;
}
bzoj 1055: [HAOI2008]玩具取名(区间DP)相关推荐
- BZOJ 1055 [HAOI2008]玩具取名
1055: [HAOI2008]玩具取名 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 1119 Solved: 653 [Submit][Sta ...
- BZOJ1055: [HAOI2008]玩具取名[区间DP]
1055: [HAOI2008]玩具取名 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 1588 Solved: 925 [Submit][Sta ...
- bzoj1055 [HAOI2008]玩具取名 区间DP
问题描述 某人有一套玩具,并想法给玩具命名.首先他选择WING四个字母中的任意一个字母作为玩具的基本名字.然后 他会根据自己的喜好,将名字中任意一个字母用"WING"中任意两个字母 ...
- [BZOJ]1055: [HAOI2008]玩具取名
Time Limit: 10 Sec Memory Limit: 162 MB Description 某人有一套玩具,并想法给玩具命名.首先他选择WING四个字母中的任意一个字母作为玩具的基本名字 ...
- 「BZOJ1055」[HAOI2008] 玩具取名 - 区间动规 - 记忆化搜索
->戳我进原题 [HAOI2008]玩具取名 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 2486 Solved: 1448 Descript ...
- bzoj1055玩具取名——区间DP
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1055 区间DP,注意初始化!! 因为没记忆化,TLE了一晚上,区间DP尤其要注意不重复递归! ...
- [HAOI2008]玩具取名
[HAOI2008]玩具取名 文章目录 题目描述 输出描述: 题解 代码: 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO F ...
- BZOJ.1032.[JSOI2007]祖码(区间DP)
题目链接 BZOJ 洛谷 AC代码: 区间DP,f[i][j]表示消掉i~j需要的最少珠子数. 先把相邻的相同颜色的珠子合并起来. 枚举方法一样,处理一下端点可以碰撞消除的情况就行. 当然合并会出现问 ...
- bzoj 1042: [HAOI2008]硬币购物(dp+容斥)
1042: [HAOI2008]硬币购物 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 2555 Solved: 1537 [Submit][St ...
最新文章
- python的print函数
- 数据结构练习 00-自测1. 打印沙漏(20)
- SEO(搜索引擎最佳化)简介
- Bitmap Index
- .NET Core 跨平台发布(dotnet publish)
- mysql kill hup_kill -HUP pid
- CAS单点登录详细流程
- 异步与延迟加载JavaScript的方法
- httpclient 不支持国密ssl_Hyperledger Fabric成都见面会:TWGC国密改造介绍
- vba教程视频,VBA(基础篇+提高篇+实战篇)Excel数据处理教学视频
- 编译Openwrt(LEDE)for K3固件详细指南
- NetSetMan v3.4.1
- 线性表的链式存储结构详解
- 2.灰尘对计算机的影响,灰尘对电脑有影响不?
- 购买学生服务器、备案域名、搭建博客菜鸟级教程
- 【Vue】Vue生成二维码 Vue把url地址生成二维码手机打开 扫一扫手机端打开实战案例 vue生成二维码
- Python 爬虫十六式 - 第七式:正则的艺术
- 网络参数和Flops计算
- MATLAB线性回归实例 平炉炼钢
- 小傻蛋的妹妹跟随小甲鱼学习Python的第二十三、二十四节023、024
热门文章
- python工资一般多少p-5万的工资,用Python算一算少交多少税?
- Kaldi语音识别库linux环境下的安装和编译
- kafka安装使用说明
- Error in mounted hook: “TypeError: Cannot read property ‘init‘ of undefined“
- java反射 例子_java反射简单例子
- vue(vue-cli+vue-router)+babel+webpack项目搭建入门(三)
- 【java笔记】常用接口(2):Consumer接口
- idft重建图像 matlab_你赞成在医疗图像处理领域使用超分辨率重建技术吗?
- python实现网站测速软件_python实现网站友情链接查询与网站死链接查询的两个脚步...
- TLS certificate verification has been disabled