• <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小加

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

            NYOJ 336 子序列 解題報告

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

             
            #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 子序列 解題報告  回復  更多評論   

            2011-11-29 19:20 by alafeizai
            這個解決的真漂亮。
            国产欧美久久一区二区| 日韩一区二区三区视频久久 | 精品一二三区久久aaa片| 久久青青草原精品国产软件| 久久综合视频网站| 久久久久高潮综合影院| 久久久久久毛片免费播放| 久久w5ww成w人免费| 日本道色综合久久影院| 99精品久久久久久久婷婷| 99999久久久久久亚洲| 一本一道久久精品综合| 久久综合狠狠综合久久97色| 一本色道久久88—综合亚洲精品| 久久精品国产亚洲网站| 中文字幕无码久久精品青草 | 久久久中文字幕日本| 狠狠色噜噜色狠狠狠综合久久| 国产成人无码精品久久久久免费| 中文字幕人妻色偷偷久久 | 欧美亚洲国产精品久久高清| 久久精品国产亚洲AV麻豆网站| 欧美无乱码久久久免费午夜一区二区三区中文字幕 | 情人伊人久久综合亚洲| 一本一道久久a久久精品综合| 国内精品免费久久影院| 久久亚洲国产成人精品性色| 久久夜色撩人精品国产| 久久精品国产半推半就| 久久本道伊人久久| 亚洲AV无码久久精品狠狠爱浪潮| 香蕉久久夜色精品国产2020| 日韩精品国产自在久久现线拍| 久久99精品国产| 久久精品国产99久久无毒不卡| 国内精品九九久久久精品| 国产偷久久久精品专区| 伊人久久成人成综合网222| 一本大道久久东京热无码AV | 69SEX久久精品国产麻豆| 久久99久久99精品免视看动漫|