最新文章:

首页 ACM

北邮oj0094最短路径

发布时间:2017年03月21日 评论数:抢沙发 阅读数:180

    #include<iostream>
    #include<stdio.h>
    #include<string.h>
    #include<math.h>
    #include<stdlib.h>
    using namespace std;
    //动态规划
    int dp[MAXN][2];
    char str[MAXN], tmp[10], ch[10];
    
    main()
    {
        int i, j, t, n, len, temp, x;
        int cnt[27], pre[27];
        scanf("%d",&t);
        For(i,0,MAXN) dp[i][0]=dp[i][1]=INF;
        while(t--){
            For(i,0,27) cnt[i]=0;
            scanf("%s",str);
            len=strlen(str);
            For(i,0,len){
                temp=str[i]-'a';
                cnt[temp]++;
                if(cnt[temp]>1) dp[pre[temp]][1]=dp[i][0]=i-pre[temp];
                pre[temp]=i;
            }
            scanf("%d",&n);
            while(n--){
                scanf("%s",tmp);
                if(tmp[0]=='I'){
                    scanf("%s",ch);
                    temp=ch[0]-'a'; cnt[temp]++;
                    if(cnt[temp]>1) dp[pre[temp]][1]=dp[i][0]=i-pre[temp];
                    pre[temp]=i++;
                }
                else
                {
                    scanf("%d",&x);
                    temp=(MIN(dp[x][0],dp[x][1]));
                    if(temp==INF) puts("-1");
                    else printf("%d\n",temp);
                }
            }
            For(j,0,i) dp[j][0]=dp[j][1]=INF;
        }
        return 0;
    }
    

二维码加载中...
本文作者:HDC      文章标题: 北邮oj0094最短路径
本文地址:http://hdcin.cn/?post=139
版权声明:若无注明,本文皆为“小胖Blog's”原创,转载请保留文章出处。
挤眼 亲亲 咆哮 开心 想想 可怜 糗大了 委屈 哈哈 小声点 右哼哼 左哼哼 疑问 坏笑 赚钱啦 悲伤 耍酷 勾引 厉害 握手 耶 嘻嘻 害羞 鼓掌 馋嘴 抓狂 抱抱 围观 威武 给力
提交评论

清空信息
关闭评论