2018百度之星资格赛1002
Posted zincsabian
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2018百度之星资格赛1002相关的知识,希望对你有一定的参考价值。
没错就是用来造(蹭)福(访)大(问)众(量)的
发现最小的子串只会是A~Z
直接统计前缀和...sum[26]统计一下。。。
1 #include<cstdio> 2 #include<cstring> 3 int sum[100005][26]; 4 int main() { 5 int t; 6 scanf("%d",&t); 7 for(int T=1;T<=t;T++) { 8 printf("Case #%d: ",T); 9 memset(sum,0,sizeof(sum)); 10 int n,q; 11 char s[100005]; 12 scanf("%d%d",&n,&q); 13 scanf("%s",s+1); 14 for(int i=1;i<=n;i++) { 15 for(int j=0;j<26;j++) 16 if((s[i]-‘A‘)==j) sum[i][j]=sum[i-1][j]+1; 17 else sum[i][j]=sum[i-1][j]; 18 } 19 while(q--) { 20 int l,r,ans=0; 21 scanf("%d%d",&l,&r); 22 for(int j=0;j<26;j++) 23 if((sum[r][j]-sum[l-1][j])>0) { 24 ans=sum[r][j]-sum[l-1][j]; 25 break; 26 } 27 printf("%d ",ans); 28 } 29 } 30 }
以上是关于2018百度之星资格赛1002的主要内容,如果未能解决你的问题,请参考以下文章
2014年百度之星程序设计大赛 - 资格赛 1002 Disk Schedule(双调欧几里得旅行商问题)