首页 > 其他 > 详细

HDU5907 Find Q 数学

时间:2016-10-02 15:07:00      阅读:163      评论:0      收藏:0      [点我收藏+]

题目大意:求当前串中只含q的连续子串的个数

题目思路:水题,但要注意的是计算过程中可能超int范围;

技术分享
 1 #include<iostream>
 2 #include<algorithm>
 3 #include<cstring>
 4 #include<vector>
 5 #include<stdio.h>
 6 #include<stdlib.h>
 7 #include<queue>
 8 #include<math.h>
 9 #define INF 0x3f3f3f3f
10 #define MAX 1000005
11 #define Temp 1000000000
12 
13 using namespace std;
14 
15 char str[MAX];
16 
17 long long Find(long long n)
18 {
19     return (n*(n+1))/2;
20 }
21 
22 int main()
23 {
24     int T;
25     long long ans,sum;
26     scanf("%d",&T);
27     while(T--)
28     {
29         scanf("%s",str);
30         int len=strlen(str);
31         sum=0;
32         ans=0;
33         for(int i=0; i<len; i++)
34         {
35             if(str[i]==q)
36                 sum++;
37             else
38             {
39                 ans+=Find(sum);
40                 sum=0;
41             }
42         }
43         ans+=Find(sum);
44         printf("%lld\n",ans);
45     }
46     return 0;
47 }
View Code

 

HDU5907 Find Q 数学

原文:http://www.cnblogs.com/alan-W/p/5927475.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!