博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【HAOI2008】玩具命名
阅读量:7237 次
发布时间:2019-06-29

本文共 1426 字,大约阅读时间需要 4 分钟。

水题大失败

原题:

某人有一套玩具,并想法给玩具命名。首先他选择WING四个字母中的任意一个字母作为玩具的基本名字。然后他会根据自己的喜好,将名字中任意一个字母用“WING”中任意两个字母代替,使得自己的名字能够扩充得很长。

现在,他想请你猜猜某一个很长的名字,最初可能是由哪几个字母变形过来的。

第一行四个整数W、I、N、G。表示每一个字母能由几种两个字母所替代。

接下来W行,每行两个字母,表示W可以用这两个字母替代。
接下来I行,每行两个字母,表示I可以用这两个字母替代。
接下来N行,每行两个字母,表示N可以用这两个字母替代。
接下来G行,每行两个字母,表示G可以用这两个字母替代。
最后一行一个长度不超过Len的字符串。表示这个玩具的名字

如果给的名字不能由任何一个字母变形而得到则输出“The name is wrong!”

Len<=200,W、I、N、G<=16

 

因为之前水了几道HAOI的题,所以这次想了想直接开始码dfs,然后呵呵

然后上网搜题解了……

然后发现是区间DP,然后就又很水了……

用f[i][j][k]表示从i到j可以变成k

区间DP即可

注意无解

代码:

1 #include
2 #include
3 #include
4 #include
5 #include
6 using namespace std; 7 int mf[210]; char _f[5]; 8 int b[5]; bool a[5][5][5]; 9 int t[210],lt=0; char _t[210];10 bool f[5][210][210];11 int main(){
//freopen("ddd.in","r",stdin);12 memset(f,0,sizeof(f));13 memset(a,0,sizeof(a));14 mf['W']=1,mf['I']=2,mf['N']=3,mf['G']=4;15 for(int i=1;i<=4;i++) cin>>b[i];16 for(int k=1;k<=4;k++)17 for(int i=1;i<=b[k];i++){18 char _ch=getchar(); while(_ch!='W'&&_ch!='I'&&_ch!='N'&&_ch!='G')_ch=getchar();19 a[k][mf[_ch]][mf[getchar()]]=true;20 }21 scanf("%s",_t+1); lt=strlen(_t+1);22 for(int i=1;i<=lt;i++){ t[i]=mf[_t[i]]; f[t[i]][i][i]=true;}23 /*for(int i=1;i
View Code

 

转载于:https://www.cnblogs.com/JSL2018/p/6340995.html

你可能感兴趣的文章
30分钟zabbix入门——最简单有效的zabbix快速学习法
查看>>
2012年第一篇博文——致谢:2011年中国IT十大杰出博客获奖感言
查看>>
蔡文胜谈美链:BEC没有任何割韭菜的行为
查看>>
Android、iOS和Windows Phone中的推送技术
查看>>
DELL软件:像胶水一样具有黏性
查看>>
社交网站存在七大安全风险 可能成为用户隐私泄露重灾区
查看>>
C# 线程手册 第二章 .NET 中的线程
查看>>
Django实战(4):scaffold生成物分析
查看>>
复习一下Java中继承关系的类的初始化顺序
查看>>
mysql 导出查询结果到文件
查看>>
多站点Session共享解决方案
查看>>
Windows Server 2008 R2安装Sql Server 2008 R2企业版出现错误:Could not open key
查看>>
C#线程进程总结(线程调用带参数的方法)
查看>>
【QA1】mysql下max_connections问题
查看>>
致IT同仁 — IT人士常犯的17个职场错误[转自李云老师]
查看>>
架设简单的FTP服务在Windows平台
查看>>
基于socket 的web服务器检测
查看>>
python 语言开发组合模块,为软件整合提供帮助
查看>>
测试过程
查看>>
修改默认的ajaxStart, ajaxStop 显示loading
查看>>