hdu3336

    第一个用g++编译,gdb调试的程序;
    虽然是水题吧,不过还是有那么一点儿里程碑式的意义的,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;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值