第一个用g++编译,gdb调试的程序;
虽然是水题吧,不过还是有那么一点儿里程碑式的意义的,so~帖一下^_^。
落后一两年了,加油赶紧的~
另外,不得不说一下~,用vim连一个程序都没有编写完的时候,额就发现自己已经完完全全的喜欢上了linux中的这种
编译器了= =II,喜欢能一边编写东西一边欣赏她的美貌~,无论是vc6.0(很古老的说对吧- -I、可是类似于居住深山中的
lz愣是用了一年多呢= =I,当然、不是说不好额,还是很vc6.0还是很好的~)、还是codeblocks,都不及其一半。(^ ^II,
哈哈,这种东西上面每个人的口味不一样么、这方面和lz不一样的童鞋就不用砸砖了哈= =I)
虽然是水题吧,不过还是有那么一点儿里程碑式的意义的,so~帖一下^_^。
落后一两年了,加油赶紧的~
另外,不得不说一下~,用vim连一个程序都没有编写完的时候,额就发现自己已经完完全全的喜欢上了linux中的这种
编译器了= =II,喜欢能一边编写东西一边欣赏她的美貌~,无论是vc6.0(很古老的说对吧- -I、可是类似于居住深山中的
lz愣是用了一年多呢= =I,当然、不是说不好额,还是很vc6.0还是很好的~)、还是codeblocks,都不及其一半。(^ ^II,
哈哈,这种东西上面每个人的口味不一样么、这方面和lz不一样的童鞋就不用砸砖了哈= =I)
#include"iostream"
#include"cstdio"
#include"cstring"
using namespace std;
const int N=200006;
const int mod=10007;
int n,p[2][N],cnt[2];
char str[N];
int main()
{
int T;
int i,l;
int now,pre,ans;
cin>>T;
while(T--)
{
scanf("%d%s",&n,str);
cnt[0]=0;
for(i=0;str[i];i++) if(str[i]==str[0]) p[0][cnt[0]++]=i;
ans=cnt[0];
for(i=1;str[i];i++)
{
now=i%2;
pre=1-now;
cnt[now]=0;
for(l=0;l<cnt[pre];l++) if(str[p[pre][l]+1]==str[i]) p[now][cnt[now]++]=p[pre][l]+1;
ans=(ans+cnt[now])%mod;
}
cout<<ans<<endl;
}
return 0;
}