Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/131072 K (Java/Others)

问题描述

Byteasar迷恋上了’q’这个字母。

在他眼前有一个小写字母组成的字符串SS,他想找出SS的所有仅包含字母’q’的连续子串。但是这个字符串实在是太长了,你能写个程序帮助他吗?

输入描述

输入的第一行包含一个正整数T(1\leq T\leq10)T(1≤T≤10),表示测试数据的组数。

对于每组数据,包含一行一个小写字母组成字符串SS,保证SS的长度不超过100000100000。

输出描述

对于每组数据,输出一行一个整数,即仅包含字母’q’的连续子串的个数。

输入样例

2

qoder

quailtyqqq

输出样例

1

7

【题解】



连续的子串是指a[x],a[x+1]..a[y];这样的东西。

x不同,或y不同都是不同的子串。

可以证明。一个长度为l的连续q,可以累加答案1+2+…+l;

注意用long long;

一堆学长看到答案为int类型就疯狂hack…

#include <cstdio>
#include <cstring> int T,len;
char s[101000]; long long f(long long n)
{
return (1 + n)*n / 2;
} int main()
{
//freopen("F:\\rush.txt", "r", stdin);
scanf("%d", &T);
while (T--)
{
long long temp = 0;
scanf("%s", s);
len = strlen(s);
int i = 0;
while (i <= len - 1)
{
int j = i;
if (s[i] == 'q')
{
while (j+1 <= len-1 && s[j + 1] == 'q')
j++;
long long k = j - i + 1;
temp += f(k);
}
i = j + 1;
}
printf("%I64d\n", temp);
}
return 0;
}

最新文章

  1. JAVA通信系列一:Java Socket技术总结
  2. Oracle 外网访问
  3. centos 6.7 搭建tornado + nginx + supervisor的方法(已经实践)
  4. 软引用SoftReference异步加载图片
  5. iOS - (TableView中利用系统的 cell 设置 cell.textlabel 位置和大小)
  6. SMB带宽限制
  7. http 请求头
  8. codevs4373 窗口
  9. PHP函数参数的引用传递和值传递
  10. 【转载】 Searching过程粗略梳理
  11. JavaScript可以这样用
  12. jquery 点击按钮实现listbox的显示与隐藏,点击其他地方按钮外的地方,隐藏listbox
  13. 【转】jsp 表单form传值
  14. 流动python - 字符串KMP匹配
  15. Spring对jdbc支持
  16. OpenCV探索之路(二十七):皮肤检测技术
  17. python 文件和目录操作题库
  18. HDU - 1036
  19. linux 保存git的账号密码
  20. 一个好玩的小制作,以及在&lt;a/&gt;中的标签href=&quot;javascript:;&quot;/href=&quot;javascript:void(0);&quot;/href=&quot;javascript:&quot;的用法

热门文章

  1. 洛谷 P1757 通天之分组背包
  2. inode与ln命令
  3. [Javascript] Identify the most important words in a document using tf-idf in Natural
  4. java创建节点和单向链表
  5. WebService三大基本元素 SOAP WSDL UDDI
  6. 洛谷P1043 数字游戏
  7. android组件
  8. C++访问WebService gSoap方式
  9. 1.1 Introduction中 Apache Kafka™ is a distributed streaming platform. What exactly does that mean?(官网剖析)(博主推荐)
  10. 【Codeforces Round #431 (Div. 2) B】 Tell Your World