Problem 1001 求问:暴力为何会TLE?

moorhsum | 2016-10-01 22:18:14Author
代码如下 #include <iostream> #include <cstdlib> #include <cstdio> #include <cstring> using namespace std; long long T; char a[100005]; long long num[100005],cnt; int main() { scanf("%I64d",&T); for(long long i=0;i<T;i++) { for(long long j=0;j<100005;j++) a[j]='\0'; getchar(); scanf("%s",a); long long ns=0; cnt=0; for(long long j=0;j<strlen(a);j++) { if(a[j]!='q') continue; else if(j==0) num[++cnt]=1; else if(a[j-1]!='q') num[++cnt]=1; else num[cnt]++; } for(long long i=1;i<=cnt;i++) ns+=num[i]*(num[i]+1)/2; printf("%I64d\n",ns); } }