Codeforces 701C They Are Everywhere(Two pointers+STL)
【题目链接】 http://codeforces.com/problemset/problem/701/C
【题目大意】
给出 一个字符串,里面包含一定种类的字符,求出一个最短的子串,使得其包含该字符串中的所有种类的字符
【题解】
利用双指针,每次找到包含所有字符的串,用这个串的长度去更新答案,在判断该字符在选定串中出现次数的时候可以调用map,而统计不同种类字符个数则可以利用STL中的set进行统计。
【代码】
#include<set>
#include<map>
#include<cstdio>
#include<cstring>
using namespace std;
int n,ans,L=0,R=0,cnt=0;
set<int> s;
map<int,int> f;
char a[100005];
int main(){
scanf("%d %s",&n,a);
for(int i=0;a[i]!='\0';i++)s.insert(a[i]);
int size=s.size(); ans=n;
while(1){
while(R<n&&cnt<size){
if(!f[a[R]])cnt++;
f[a[R++]]++;
}while(f[a[L]]>1)f[a[L++]]--;
if(cnt==size){
ans=min(ans,R-L);
f[a[L++]]--;cnt--;
}if(R==n)break;
}return printf("%d\n",ans),0;
}
Codeforces 701C They Are Everywhere(Two pointers+STL)的更多相关文章
- CodeForces 701C They Are Everywhere(map的应用)
这个题比较好的解决办法,我觉得还是map,map的size可以很快的知道我们选了几个字母,而且可以作为计数器,知道每一个字母出现了多少次, erase函数可以清除掉一个元素. 所以,定义两个指针L和R ...
- Codeforces Gym101257F:Islands II(求割点+思维)
http://codeforces.com/gym/101257/problem/F 题意:给出一个n*m的地图,上面相同数字的代表一个国家,问对于每个国家有多少个国家在它内部(即被包围).例如第一个 ...
- Codeforces C. Jzzhu and Cities(dijkstra最短路)
题目描述: Jzzhu and Cities time limit per test 2 seconds memory limit per test 256 megabytes input stand ...
- Codeforces C. A Simple Task(状态压缩dp)
题目描述: A Simple Task time limit per test 2 seconds memory limit per test 256 megabytes input standar ...
- codeforces 711 D.Directed Roads(tarjan 强连通分量 )
题目链接:http://codeforces.com/contest/711/problem/D 题目大意:Udayland有一些小镇,小镇和小镇之间连接着路,在某些区域内,如果从小镇Ai开始,找到一 ...
- CodeForces 1000B Light It Up(贪心、思维)
https://codeforces.com/problemset/problem/1000/B 题意: 一个模拟思维题.就是有一盏灯,0时刻开着.n次操作,你可以在其中加入一次操作(或者不加),操作 ...
- Codeforces Round #344 (Div. 2)(按位或运算)
Blake is a CEO of a large company called "Blake Technologies". He loves his company very m ...
- CodeForces - 508D Tanya and Password(欧拉通路)
Description While dad was at work, a little girl Tanya decided to play with dad characters. She has ...
- CodeForces 445B DZY Loves Chemistry (并查集)
题意: 有N种药剂编号 1 ~ N,然后有M种反应关系,这里有一个试管,开始时危险系数为 1,每当放入的药剂和瓶子里面的药剂发生反应时危险系数会乘以2,否则就不变,给出N个药剂和M种反应关系,求最大的 ...
随机推荐
- create mysql database
CREATE DATABASE IF NOT EXISTS yourdbname DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
- jquery解决onmouseover和onmouseout合用的bug问题
经常会遇到鼠标放到一个元素上显示另外一个元素,这两个元素是父子关系,比如在A上绑定mouseover和mouseout事件来显示或隐藏B元素,A元素包含B元素,当鼠标移到B元素后浏览器认为你移开了A, ...
- 51cto那些技术专题们
Nginx配置与应用详解 UML(Unified Modeling Language,统一建模语言) 架构师的成长历程 python python book ruby html5 不可不知的Linux ...
- [转]iOS UIAppearance使用详解
在iOS 5以前,自定义原生控件的外观并没有原生支持,因此开发人员感觉很麻烦.开发人员经常面临的问题是修改一个控件所有实例的外观.解决这个问题的正确方法是重写一遍控件.但由于这么做非常费时,一些开发人 ...
- CDC变更数据捕获
CDC变更数据捕获 (2013-03-20 15:25:52) 分类: SQL SQL Server中记录数据变更的四个方法:触发器.Output子句.变更数据捕获(Change Data Cap ...
- smtp cmd 测试 smtp发送邮件 cmd发送邮件
无账户MAIL FROM:<test@rmvbdy.com>RCPT TO:2850965781@qq.comDATASubject: test messagetest body . 有账 ...
- [置顶] How to compile openjdk 7 in RHEL5
1. 为什么要编译openjdk的code? 因为从Eclipse调试JDK的代码时,方法中的局部变量不能显示,这样是因为编译JDK时,没有编译成debug版本. 2. RHEL5中自带的开发者JDK ...
- 一个cocoapods问题的解决,希望能帮助到遇到相似情况的人
之前10.7的系统上执行过cocoapods没有问题.如今系统版本号升级到了10.9,尝试使用cocoapods遇到问题,报告了类似以下的错误: Psych::SyntaxError - (/User ...
- Spring MVC 简单介绍
Spring MVC 是典型的mvc架构,适合web开发. controler 输入输出的控制器,也是对外view提供数据的接口,调用service层. model 数据,由bean组成(相应表),关 ...
- SQL学习之使用常用函数处理数据
一.在介绍使用函数处理数据前,先说下使用DBMS(数据库管理系统)处理数据所带来的问题! 1.与几乎所有的DBMS都同等的支持SQL语句(如SELECT)不同,每一个DBMS都有特定的函数,事实上,只 ...