2017年浙江中医药大学大学生程序设计竞赛

来源:互联网 发布:于谦 暗黑英雄 知乎 编辑:程序博客网 时间:2024/04/29 08:54

时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 131072K,其他语言262144K
64bit IO Format: %lld

题目描述

一年一度的浙江中医药大学程序设计校赛正在火热进行,举办至今这是第十一届校赛了。 
那么今年就来寻找一下zcmu。 
这里有一串只包含小写字母的字符串,里面有若干个zcmu,你为了省力,需要知道最少需要删除几个字符是的有连续四个字符是"zcmu"。 

输入描述:

多组数据每组数据包含一个字符串1 <= n <= 100000

输出描述:

输出一个整数表示最少需要删除的字符数,若不存在则输出"-1"。
示例1

输入

zcmuumczzzccmmuuaa

输出

0-12

POINT:

给每个z存一个离他最近的(右边)的c。可以用o(n)的效率求出来。

每个c存m,m存u。

遍历一下这个类似链表的东西得出答案即可。


#include <iostream>#include <string>#include <string.h>#include <math.h>#include <vector>#include <map>#include <stdio.h>#include <algorithm>using namespace std;const int maxn = 100000+33;#define LL long longconst int inf = 0x3f3f3f3f;char s[maxn];void doit(char a,char b,int temp[]){int l=strlen(s);int now=-1;for(int i=l-1;i>=0;i--){if(s[i]==b){now=i;}if(s[i]==a){temp[i]=now;}}return;}int main(){while(~scanf("%s",s)){int l=strlen(s);int z[maxn];int c[maxn];int m[maxn];doit('z','c',z);doit('c','m',c);doit('m','u',m);int ans=inf;for(int i=0;i<l;i++){if(s[i]=='z'){int aa=z[i];if(aa==-1) continue;int bb=c[aa];if(bb==-1) continue;intcc=m[bb];if(cc==-1) continue;ans=min(ans,(cc-i+1)-4);}}if(ans==inf){printf("-1\n");}elseprintf("%d\n",ans);}}



阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 洪的组词是什么 洪组词有哪些 洪罗喜 洪羊洞 京剧名段欣赏洪羊洞 洪若潭 洪荒玄幻 无限洪荒 大洪荒纪 误入洪荒 洪荒万界聊天群 全洪荒都知道 洪荒之万界聊天群 洪荒之力 洪荒之万界妖帝 洪荒之石姬 洪荒之玄宵 洪荒之尸圣 洪荒之演化 洪荒朽 洪荒从羲和选择开始爱看书吧 洪荒少年猎录txt下载 洪荒少年猎录txt 诸天洪荒录 洪荒斗战录 洪荒上清通天录 洪荒少年猎录 洪荒少年猎燕录 洪荒逍遥傲世录 洪荒少年遇艳录 洪荒少年猎录阅读 洪荒少年猎录全文阅读txt下载 洪荒少年猎录txt下载下书网 洪荒天人录 卜思追梦 洪荒之皇天登天录 洪荒清华录 道音清玄 洪荒凌霄录 雨夜星辰泪 洪荒逍遥录 周成道 洪荒流 洪荒青莲 浮流西元 我在洪荒带孩子 漱流枕石