• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            C小加

            厚德 博學(xué) 求真 至善 The bright moon and breeze
            posts - 145, comments - 195, trackbacks - 0, articles - 0
              C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

            NYOJ 336 子序列 解題報(bào)告

            Posted on 2011-11-29 14:16 C小加 閱讀(1433) 評(píng)論(1)  編輯 收藏 引用 所屬分類(lèi): 解題報(bào)告
            原題地址:http://acm.nyist.net/JudgeOnline/problem.php?pid=336
            簡(jiǎn)單DP。月賽的時(shí)候沒(méi)去開(kāi)這道題,本想把簡(jiǎn)單題先搞定的,不過(guò)悲劇了。
            我剛開(kāi)始很快想出了一種結(jié)構(gòu),但超內(nèi)存了,然后試著加上滾動(dòng)數(shù)組,發(fā)現(xiàn)不能用,只能換思路。
            后來(lái)想的思路有點(diǎn)復(fù)雜,有好多情況沒(méi)有考慮到,繞了好多彎路才AC。
            狀態(tài)轉(zhuǎn)移方程式:f[j+1]=(f[j]+f[j+1])%10003;j+1為B串中第j個(gè)點(diǎn)。
            第j個(gè)點(diǎn)的組數(shù)=前一個(gè)元素中第j個(gè)點(diǎn)的組數(shù)+前一個(gè)元素中的第j-1個(gè)點(diǎn)的元素的組數(shù)。
            在遍歷A串的過(guò)程中更新f[j+1]。
            注意f[0]初始化為1,其他為0。
            后來(lái)我用map 優(yōu)化了一下,速度反而降低了。

             
            #include<iostream>
            #include<cstdio>
            #include<cstring>
            using namespace std;
            const int MAXN=100003;
            char A[MAXN];
            char B[1003];
            int f[1003];
            int main()
            {
                //freopen("in.txt","r",stdin);
                int t;
                scanf("%d",&t);
                while(t--)
                {
                    //memset(f,0,sizeof(f));
                    scanf("%s %s",A,B);
                    int numa=strlen(A);
                    int numb=strlen(B);
                    if(numa<numb)
                    {
                        printf("0\n");
                        continue;
                    }
                    else if(numa==numb)
                    {
                        if(!strcmp(A,B))
                        {
                            printf("1\n");
                            continue;
                        }
                        else printf("0\n");
                    }
                    else
                    {
                        memset(f,0,sizeof(f));
                        f[0]=1;
                        for(int i=0;i<numa;i++)
                        {
                            for(int j=numb-1;j>=0;j--)
                            {
                                if(j>i) continue;
                                //if(numa-i<=numb-j) continue;
                                if(A[i]==B[j])
                                {
                                    f[j+1]=(f[j]+f[j+1])%10003;
                                }
                            }
                        }


                        printf("%d\n",f[numb]);

                    }
                }

                return 0;
            }
                    

            Feedback

            # re: NYOJ 336 子序列 解題報(bào)告  回復(fù)  更多評(píng)論   

            2011-11-29 19:20 by alafeizai
            這個(gè)解決的真漂亮。
            精品国产VA久久久久久久冰| 人人狠狠综合久久亚洲88| 久久久久久久久久免免费精品| 久久综合中文字幕| 热久久国产欧美一区二区精品| 亚洲午夜久久久影院| 久久久久四虎国产精品| 狠狠色丁香久久婷婷综合_中 | 精品999久久久久久中文字幕| 精品乱码久久久久久夜夜嗨| 亚洲精品国精品久久99热一| 国内精品免费久久影院| 久久亚洲中文字幕精品有坂深雪 | 亚洲欧洲日产国码无码久久99| 日本一区精品久久久久影院| 国产成人精品综合久久久| 亚洲一区二区三区日本久久九| 久久人人爽人人爽人人av东京热 | 久久精品一本到99热免费| 无码精品久久一区二区三区| 久久精品国产只有精品2020| 欧美噜噜久久久XXX| 久久婷婷人人澡人人爽人人爱| 久久久精品久久久久特色影视| 国产精品99精品久久免费| 久久av高潮av无码av喷吹| 国产精品岛国久久久久| 国产精品成人久久久| 中文精品久久久久国产网址| 亚洲一区精品伊人久久伊人| 超级碰久久免费公开视频| 久久国产色AV免费观看| 伊人久久大香线蕉av不变影院| 久久久精品波多野结衣| 精品一久久香蕉国产线看播放| 久久er热视频在这里精品| 麻豆成人久久精品二区三区免费| 久久婷婷五月综合国产尤物app| 一97日本道伊人久久综合影院| 久久激情五月丁香伊人| 久久WWW免费人成—看片|