寻找ZCMU
来源:互联网 发布:历史周期律 知乎 编辑:程序博客网 时间:2024/05/22 03:35
不忘初心,砥砺前行!
2013: 寻找zcmu
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 484 Solved: 80
[Submit][Status][Web Board]
Description
Input
多组数据
每组数据包含一个字符串
1 <= n <= 100000
Output
输出一个整数表示最少需要删除的字符数,若不存在则输出"-1"。
Sample Input
zcmu
umcz
zzccmmuuaa
Sample Output
0
-1
2
HINT
【题解】:
哎,刚开始一直用find()找,结果超时了,回来看题解upper_bound()二分查找
开始预处理还是要把zcmu的下标用四个数组分别存就好处理了,upper_bound()找大于val值的第一个;
这题基本了
大佬的代码,自己看完了,敲了一遍
#include<cstdio>#include<algorithm>#include<iostream>#include<vector>using namespace std;#define clr clear()#define pd push_backconst int Max=0x3f3f3f3f;vector<int>z,c,m,u;int main(){ char a[100100]; while(~scanf("%s",a)) { z.clr;c.clr;m.clr;u.clr; for(int i=0;a[i];i++){ if(a[i]=='z')z.pd(i); if(a[i]=='c')c.pd(i); if(a[i]=='m')m.pd(i); if(a[i]=='u')u.pd(i); } int flag=0,Min=Max; for(int i=0;i<z.size();i++) { int p1=upper_bound(c.begin(),c.end(),z[i])-c.begin(); if(p1==c.size()) continue; int p2=upper_bound(m.begin(),m.end(),c[p1])-m.begin(); if(p2==m.size()) continue; int p3=upper_bound(u.begin(),u.end(),m[p2])-u.begin(); if(p3==u.size()) continue; flag=1; Min=min(Min,u[p3]-z[i]-3); } printf("%d\n",flag==1?Min:-1); } return 0;}
阅读全文
0 0
- 寻找ZCMU
- 寻找zcmu(upper_bound算法)
- 寻找zcmu-2017浙江中医药大学程序设计
- zcmu-1657
- zcmu-1685
- ZCMU----1776
- ZCMU----1777
- ZCMU----1778
- ZCMU----1779
- ZCMU-1731
- ZCMU-1658
- ZCMU-1654
- ZCMU-1132
- ZCMU-1037
- ZCMU-1415
- ZCMU-1036
- ZCMU-1723
- ZCMU-1608
- Backbone入门
- 解析WINDOWS中的DLL文件---经典DLL解读
- A child container failed during异常解决
- 【736c677c4】log4j多模块配置文件模板 (含注释及优先级说明)
- CAS实现多线程计数器
- 寻找ZCMU
- 可绑定可扩展的帐号系统设计原理及其实现
- jsonp跨域百度
- mysql毫秒测试
- 第一篇python爬虫
- Moore-Penrose伪逆
- 【Android】【UI】透明度转十六进制
- OnTouchListenner
- CSS常见兼容性问题总结