zzulioj 1912: 小火山的爱情密码
来源:互联网 发布:ssd nvme ubuntu 分区 编辑:程序博客网 时间:2024/04/30 07:50
Description
小火山获得了一个字符串,然而大火山让小火山从里面截取一段字符串,并且让小火山截取的字符串满足一些字符达到一定数量。
小火山觉得很容易,但是他想要知道他至少得截取多长的字符串。
Input
首先是一个整数t(t<=100),表示测试数据组数。接下来是两个整数n和m(n<=10000, m<=10),n表示字符串的长度,m表示要满足一定数量的字符
的种类.(字符只包含小写英文字母)
个数(没有重复字符种类),然后有m行,每行第一个是一个字符,然后是一个整数x(x<=50),表示这种字符的的要求数量。
Output
输出最小长度,如果达不到要求输出-1
Sample Input
1
6 3
cancan
c 2
a 2
n 2
6 3
cancan
c 2
a 2
n 2
Sample Output
6
尺取法来做就行了;
尺取法来做就行了;
#include<iostream>#include<cstdlib>#include<cstdio>#include<algorithm>#include<cstring>struct can//可以用一个结构体讲字母和要求出现的次数对应起来{ char ch; int num;};can pi[60];int jude(int b[],can pi[],int m){ for(int i=0; i<m; i++) { if(b[pi[i].ch-'a']<pi[i].num)//注意,这里是小于,题目说是达到即可,所以超过也行,理解错题意刚开始写了个不等于一直wa return 0; } return 1;}int main(){ int m,n,t,i,j,ans,min; char s[10010]; int b[50]; scanf("%d",&t); while(t--) { memset(pi,0,sizeof(pi)); scanf("%d%d",&n,&m); scanf("%s",s); for(i=0; i<m; i++) scanf(" %c%d",&pi[i].ch,&pi[i].num); j=0,i=0; memset(b,0,sizeof(b)); ans=n+1; while(1) { while(j<n&&jude(b,pi,m)!=1) { b[s[j]-'a']++; j++; } while(i<n&&j==n&&jude(b,pi,m)!=1) { b[s[i]-'a']--; i++; } if(jude(b,pi,m)!=1) break; min=j-i; if(ans<min) min=ans; ans=min; b[s[i]-'a']--; i++; } if(ans==n+1) printf("-1\n"); else printf("%d\n",ans); } return 0;}
0 0
- zzulioj 1912: 小火山的爱情密码
- 【zzulioj 1912 小火山的爱情密码】
- 【zzuliOJ】1912 - 小火山的爱情密码(尺取法)
- ZZULIOJ 1912: 小火山的爱情密码 (尺取法)
- 【多校训练】ZZULIOJ 1912 小火山的爱情密码
- zzulioj-1912-小火山的爱情密码【二分】【尺取法】
- ZZULIOJ / 郑轻OJ 1912 小火山的爱情密码(尺取法,思维)
- zzuliOJ 1912:小火山的爱情密码(尺取法||二分)
- zzuli 1912: 小火山的爱情密码
- zzuli 1912 小火山的爱情密码
- ZZULI 1912: 小火山的爱情密码
- 小火山的爱情密码
- zzuli OJ 1912: 小火山的爱情密码【二分】
- Zzuli OJ-----1912 小火山的爱情密码
- 轻院OJ-1912 小火山的爱情密码(尺取法)
- 【zzuli-ij】-1912: 小火山的爱情密码(尺取法,好)
- 1912: 小火山的爱情密码 (尺取比二分果然更有优势)
- ZZULI-1912 小火山的爱情密码 【尺取(OR 二分)+map】
- Java Se----多线程
- 怎么预防空调病呢?
- TestNG的IMethodInterceptor监听器详解
- Android判断view是否部分被遮挡(或者移出屏幕)的方法
- JavaWEB——文件上传与下载
- zzulioj 1912: 小火山的爱情密码
- OC中的KVC和KVO(二)
- 初识Pyspark 1
- 什么是脚本(Script)
- 漫步线性代数二——线性方程的几何形状
- web组件之间的跳转
- 115.[LeetCode] Min Stack
- Spring整合mybatis简单配置
- Web应用程序路径