Hidden String

 Accepts: 437
 Submissions: 2174
 Time Limit: 2000/1000 MS (Java/Others)
 Memory Limit: 262144/262144 K (Java/Others)
问题描述
今天是BestCoder一周年纪念日. 比赛管理员Soda有一个长度为n的字符串s. 他想要知道能否找到s的三个互不相交的子串s[l1..r1], s[l2..r2], s[l3..r3]满足下列条件:

  1. 1≤l1≤r1<l2≤r2<l3≤r3≤n

  2. s[l1..r1], s[l2..r2], s[l3..r3]依次连接之后得到字符串"anniversary".
输入描述
输入有多组数据. 第一行有一个整数T (1≤T≤100), 表示测试数据组数. 然后对于每组数据:

一行包含一个仅含小写字母的字符串s (1≤|s|≤100).
输出描述
对于每组数据, 如果Soda可以找到这样三个子串, 输出"YES", 否则输出"NO".
输入样例
2
annivddfdersewwefary
nniversarya
输出样例
YES
NO
这题想要总结的地方就是理解一下题意吧,分成三段。。。(单独的annniversary要输出YES)
改了很久也很low的代码,也不优化了,纪念一下吧
代码:
#include <iostream>
#include <algorithm>
#include <cmath>
#include <vector>
#include <string>
#include <cstring>
#pragma warning(disable:4996)
using namespace std; vector<int> wei_z[30];
vector<int> weizhi;
char test[200];
int len,i,flag; void init()
{
for(i=0;i<len;i++)
{
wei_z[test[i]-'a'].push_back(i);
}
} bool pend()
{
int result=0,temp=weizhi[0];
for(i=1;i<weizhi.size();i++)
{
if(temp!=weizhi[i]-1)
result++;
temp=weizhi[i];
}
if(result<=2)
return true;
else
return false;
} void solve()
{
int i1,i2,i3,i4,i5,i6,i7,i8,i9,i10,i11;
for(i1=0;i1<wei_z['a'-'a'].size();i1++)
{
for(i2=0;i2<wei_z['n'-'a'].size();i2++)
{
if(wei_z['n'-'a'][i2]<=wei_z['a'-'a'][i1])continue;
for(i3=0;i3<wei_z['n'-'a'].size();i3++)
{
if(wei_z['n'-'a'][i3]<=wei_z['n'-'a'][i2])continue;
for(i4=0;i4<wei_z['i'-'a'].size();i4++)
{
if(wei_z['i'-'a'][i4]<=wei_z['n'-'a'][i3])continue;
for(i5=0;i5<wei_z['v'-'a'].size();i5++)
{
if(wei_z['v'-'a'][i5]<=wei_z['i'-'a'][i4])continue;
for(i6=0;i6<wei_z['e'-'a'].size();i6++)
{
if(wei_z['e'-'a'][i6]<=wei_z['v'-'a'][i5])continue;
for(i7=0;i7<wei_z['r'-'a'].size();i7++)
{
if(wei_z['r'-'a'][i7]<=wei_z['e'-'a'][i6])continue;
for(i8=0;i8<wei_z['s'-'a'].size();i8++)
{
if(wei_z['s'-'a'][i8]<=wei_z['r'-'a'][i7])continue;
for(i9=0;i9<wei_z['a'-'a'].size();i9++)
{
if(wei_z['a'-'a'][i9]<=wei_z['s'-'a'][i8])continue;
for(i10=0;i10<wei_z['r'-'a'].size();i10++)
{
if(wei_z['r'-'a'][i10]<=wei_z['a'-'a'][i9])continue;
for(i11=0;i11<wei_z['y'-'a'].size();i11++)
{
if(wei_z['y'-'a'][i11]<=wei_z['r'-'a'][i10])continue;
weizhi.push_back(wei_z['a'-'a'][i1]);
weizhi.push_back(wei_z['n'-'a'][i2]);
weizhi.push_back(wei_z['n'-'a'][i3]);
weizhi.push_back(wei_z['i'-'a'][i4]);
weizhi.push_back(wei_z['v'-'a'][i5]);
weizhi.push_back(wei_z['e'-'a'][i6]);
weizhi.push_back(wei_z['r'-'a'][i7]);
weizhi.push_back(wei_z['s'-'a'][i8]);
weizhi.push_back(wei_z['a'-'a'][i9]);
weizhi.push_back(wei_z['r'-'a'][i10]);
weizhi.push_back(wei_z['y'-'a'][i11]);
if(pend()==true)
{
flag=1;
return;
}
weizhi.clear();
}
}
}
}
}
}
}
}
}
}
}
} int main()
{
int Test1;
cin>>Test1; while(Test1--)
{
cin>>test;
for(i=0;i<=29;i++)
wei_z[i].clear();
weizhi.clear();
flag=0;
len=strlen(test);
init();
solve();
if(flag)
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
}
return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

HDU 5311:Hidden String的更多相关文章

  1. HDU 4055:Number String(DP计数)

    http://acm.hdu.edu.cn/showproblem.php?pid=4055 题意:给一个仅包含‘I','D','?'的字符串,’I'表示前面的数字比后面的数字要小(Increase升 ...

  2. hdu 5311 Hidden String (BestCoder 1st Anniversary ($))(深搜)

    http://acm.hdu.edu.cn/showproblem.php?pid=5311 Hidden String Time Limit: 2000/1000 MS (Java/Others)  ...

  3. HDU 5311 Hidden String (优美的暴力)

    Hidden String Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) ...

  4. hdu 5311 Hidden String

    题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5311 Hidden String Description Today is the 1st anniv ...

  5. BestCoder 1st Anniversary B.Hidden String DFS

    B. Hidden String Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://bestcoder.hdu.edu.cn/contests/co ...

  6. BestCoder 1st Anniversary ($) 1002.Hidden String

    Hidden String Accepts: 437 Submissions: 2174 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 26 ...

  7. HDU 5842 Lweb and String(Lweb与字符串)

    p.MsoNormal { margin: 0pt; margin-bottom: .0001pt; text-align: justify; font-family: Calibri; font-s ...

  8. HDU 2594 Simpsons’ Hidden Talents(辛普森一家的潜在天赋)

    HDU 2594 Simpsons’ Hidden Talents(辛普森一家的潜在天赋) Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 3 ...

  9. hdu 4850 Wow! Such String! 欧拉回路

    作者:jostree 转载请注明出处 http://www.cnblogs.com/jostree/p/4080264.html 题目链接:hdu 4850 Wow! Such String! 欧拉回 ...

随机推荐

  1. SpringBoot邮件推送功能

    鞠躬,道歉 抱歉,迟到了近一年的更新,这一年挺忙的,发生了很多事情,就厚脸皮拖更了,抱歉. 现在状态回来了,打算分享下近期学到的东西,这一年期间学到的东西可能会随意更新,其实也就是玩了下C# + un ...

  2. 使用vue框架开发前端项目的步骤

    前端项目的开发 1. 本地安装nodejs https://nodejs.org/en/download/ 2. 测试安装 > node -v 3. 本地安装git > git --ver ...

  3. Ubuntu 14.04 配置 VNC Server

    用putty连接Linux后,如果会话断开,也会终止此会话在Linux执行的任务. 用WinSCP传输文件很方便,目前也只能传输文件. 按照以下步骤以及提示,安装VNC Server, 1.apt-g ...

  4. mybatis插入数据后将其ID返回

    背景 mybatis没有关联保存的功能,所以主从表需要分开保存,这就涉及到主表保存后要再次获取主表ID的环节,以下介绍mybatis插入数据后返回其自增ID的两种方式 方案 1.sql获取 <i ...

  5. netty权威指南学习笔记六——编解码技术之MessagePack

    编解码技术主要应用在网络传输中,将对象比如BOJO进行编解码以利于网络中进行传输.平常我们也会将编解码说成是序列化/反序列化 定义:当进行远程跨进程服务调用时,需要把被传输的java对象编码为字节数组 ...

  6. laravel.01.一些细节

    0:参考1,参考2,参考3,参考4,参考5 1.读取项目的配置文件内容,比如app.php下的name属性,用config('app.name','default-value'); 2.读取.ENV文 ...

  7. Jinja2语法小记

    jinja2模板语法小记 Jinja2模板中文文档 三种常见界定符 表达式 {{ ... }} 用于装载字符串.变量.函数调用等 语句 {% ... %} 用于装载控制语句,比如if判断.for循环等 ...

  8. Spring Boot -- Spring Boot之@Async异步调用、Mybatis、事务管理等

    这一节将在上一节的基础上,继续深入学习Spring Boot相关知识,其中主要包括@Async异步调用,@Value自定义参数.Mybatis.事务管理等. 本节所使用的代码是在上一节项目代码中,继续 ...

  9. Nginx+uwsgi+django部署项目

    nginx把请求转发给uwsgi,然后把uwsgi处理得到的结果返回给浏览器. 安装nginx: yum -y install gcc pcre-devel openssl-devel #安装Ngin ...

  10. Centos7安装rabbitMQ3.6.0

    文章中的erlang和rabbitmq3.6.0 http://pan.baidu.com/s/1c2Nn64w ​ Centos7 系统操作 cd /etc/yum.repos.d/ mv Cent ...