青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

pku1934 LCS+二次DP構造解 注意位壓縮只能對應無符號數

題意很簡單,找出2個字符串的最長公共字串,并輸出所有解。
前一個問題很簡單,后面一個問題有點小麻煩
首先,需要在狀態轉移時記錄下所有的最優決策,我是用一個vector來記錄的
可以發現,解的結構是一個階段圖,這樣就可以用DP來構造解,當然狀態是一個集合。
DP其實很靈活,狀態不僅僅可以是一個數字、一個字符串,也可以是對象等。像這道題狀態轉移過程就是集合的合并,應該用左偏樹或者spaly的,我偷懶,直接用set了- -結果跑了800MS,汗。。

 1# include <iostream>
 2# include <vector>
 3# include <cstring>
 4# include <set>
 5# include <string>
 6using namespace std;
 7int dp[100][100];
 8vector<int> path[100][100];
 9char str1[100],str2[100];
10set<string> ans[100][100];
11# define encode(a,b) (((a)<<7)|(b))
12int solve(int p1,int p2)
13{
14    if(p1<=0||p2<=0return 0;
15    else if(dp[p1][p2]!=-1return dp[p1][p2];
16    else
17    {
18        if(str1[p1]==str2[p2])
19        {
20           dp[p1][p2]=solve(p1-1,p2-1)+1;
21           path[p1][p2].push_back(encode(p1-1,p2-1));
22        }

23        else
24        {
25            if(solve(p1-1,p2)==solve(p1,p2-1))
26            {
27               dp[p1][p2]=solve(p1-1,p2);
28               path[p1][p2].push_back(encode(p1-1,p2));
29               path[p1][p2].push_back(encode(p1,p2-1));
30            }

31            else if(solve(p1-1,p2)>solve(p1,p2-1))
32            {
33               dp[p1][p2]=solve(p1-1,p2);
34               path[p1][p2].push_back(encode(p1-1,p2));
35            }

36            else
37            {
38                dp[p1][p2]=solve(p1,p2-1);
39                path[p1][p2].push_back(encode(p1,p2-1));
40            }

41        }

42        return dp[p1][p2];
43    }

44}

45void makeans(int p1,int p2,int len)
46{
47     if(len==0)  ans[p1][p2].insert(string(""));
48     else if(ans[p1][p2].size()!=0return;
49     else
50     {
51        for(int i=0;i<path[p1][p2].size();i++)
52        {
53           int t1=path[p1][p2][i]>>7,t2=path[p1][p2][i]&127;
54           if(t1==p1-1&&t2==p2-1)
55           {
56              makeans(p1-1,p2-1,len-1);
57              for(set<string>::iterator it=ans[p1-1][p2-1].begin();it!=ans[p1-1][p2-1].end();it++)
58                ans[p1][p2].insert(*it+str1[p1]);
59           }

60           else if(t1==p1-1)
61           {
62              makeans(p1-1,p2,len);
63              ans[p1][p2].insert(ans[p1-1][p2].begin(),ans[p1-1][p2].end());
64           }

65           else 
66           {
67              makeans(p1,p2-1,len);
68              ans[p1][p2].insert(ans[p1][p2-1].begin(),ans[p1][p2-1].end());
69           }

70        }

71     }

72}

73int main()
74{
75    memset(dp,-1,sizeof(dp));
76    cin>>str1+1>>str2+1;  
77    makeans(strlen(str1+1),strlen(str2+1),solve(strlen(str1+1),strlen(str2+1)));
78    for(set<string>::iterator it=ans[strlen(str1+1)][strlen(str2+1)].begin();it!=ans[strlen(str1+1)][strlen(str2+1)].end();it++)
79       cout<<*it<<endl;
80    //system("pause");
81    return 0;
82}

83

posted on 2010-10-29 14:13 yzhw 閱讀(148) 評論(0)  編輯 收藏 引用 所屬分類: DP

<2010年10月>
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456

導航

統計

公告

統計系統

留言簿(1)

隨筆分類(227)

文章分類(2)

OJ

最新隨筆

搜索

積分與排名

最新評論

閱讀排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            国产精品第十页| 亚洲午夜av| 国产精品99久久久久久久久 | 欧美日韩综合一区| 欧美日韩高清一区| 欧美视频一区二| 国产精品久久国产精品99gif | 欧美~级网站不卡| 欧美高清视频在线播放| 欧美99久久| 在线性视频日韩欧美| 国产精品99久久久久久久女警| 国产美女精品人人做人人爽| 国产三区精品| 在线观看亚洲视频啊啊啊啊| 亚洲日本va在线观看| 亚洲视频每日更新| 久久久五月婷婷| 欧美国产免费| 一区二区精品在线| 欧美综合77777色婷婷| 女生裸体视频一区二区三区 | 黑人一区二区| 亚洲开发第一视频在线播放| 亚洲图片欧美日产| 美女黄色成人网| 亚洲精品国产拍免费91在线| 999亚洲国产精| 久久久久成人网| 欧美午夜免费影院| 亚洲成人资源| 午夜精品福利电影| 亚洲国产精品va在线观看黑人| 亚洲一区精彩视频| 嫩草影视亚洲| 国产午夜精品视频| 中文无字幕一区二区三区| 久久影视精品| 亚洲午夜精品久久久久久app| 久久久久久一区二区三区| 国产精品久久久久久户外露出| 亚洲电影专区| 久久精品视频免费观看| 一区二区三区精品视频| 欧美阿v一级看视频| 国产在线视频欧美| 香蕉久久国产| 一本久道久久综合婷婷鲸鱼| 蜜桃av噜噜一区二区三区| 国产日韩精品电影| 亚洲视频999| 亚洲国产欧美久久| 亚洲视频第一页| 欧美成在线观看| 在线不卡中文字幕| 国内成人自拍视频| 欧美一区二区三区男人的天堂| 亚洲乱码一区二区| 欧美精品三级日韩久久| 亚洲人成人99网站| 亚洲高清成人| 欧美激情自拍| 一区二区高清在线观看| 亚洲精品视频一区| 欧美日韩在线播放| 亚洲经典视频在线观看| 欧美第一黄网免费网站| 另类尿喷潮videofree| 亚洲午夜一区二区三区| 亚洲网站视频| 欧美h视频在线| 老司机67194精品线观看| 亚洲成人影音| 亚洲免费黄色| 国产欧美二区| 欧美成人精品激情在线观看| 欧美成人情趣视频| 亚洲精品国产精品乱码不99| 亚洲精品欧美| 国产区亚洲区欧美区| 久久国产精品毛片| 亚洲午夜久久久久久久久电影院 | 国产一在线精品一区在线观看| 久久这里只有| 国产专区欧美精品| 亚洲尤物在线视频观看| 亚洲深夜福利在线| 欧美婷婷在线| 国产精品99久久久久久人| 一区二区三区 在线观看视频| 欧美成人一区二区三区在线观看| 亚洲二区在线| 91久久一区二区| 欧美日韩国产999| 亚洲狼人综合| 久久疯狂做爰流白浆xx| 精品999久久久| 欧美成人午夜77777| 亚洲欧洲精品一区二区三区不卡 | 欧美一区二区在线免费播放| 亚洲欧美日韩国产| 在线观看av不卡| 欧美精品在线观看播放| 欧美中文在线字幕| 亚洲日本欧美日韩高观看| 亚洲欧美日韩专区| 在线观看福利一区| 美女任你摸久久| 欧美在线免费看| 一区二区三区欧美视频| 免费短视频成人日韩| 久久国产精品久久久久久电车| 一区二区在线看| 亚洲国产一区在线观看| 国产精品久久久久久久电影| 久久久久www| 久久久久国色av免费观看性色| 亚洲精品一区二区三区99| 蜜桃av久久久亚洲精品| 亚洲国产精品国自产拍av秋霞| 久久综合狠狠综合久久综青草| 亚洲黑丝在线| 国产精品高潮久久| 性色av一区二区三区| 久久在线免费| 在线视频你懂得一区二区三区| 亚洲欧美日韩一区二区在线| 国产日产欧美精品| 欧美精品日韩| 亚洲精品色图| 免费在线国产精品| 亚洲欧美视频一区| 国产精品久久久久久久久免费| 久久久久国产精品麻豆ai换脸| 在线亚洲+欧美+日本专区| 欧美1区3d| 欧美黑人在线播放| 亚洲一区在线看| 亚洲激情一区二区| 久久精品国产96久久久香蕉| 中国成人黄色视屏| 亚洲一区二区影院| 99精品国产在热久久下载| 亚洲国产综合在线| 亚洲国产精品v| 亚洲人成久久| 亚洲电影第1页| 国产视频观看一区| 国产午夜精品理论片a级大结局| 欧美网站在线| 国产精品久久看| 欧美日韩国内自拍| 国产精品视频一| 国产精品日韩精品欧美在线| 欧美国产亚洲另类动漫| 欧美理论在线播放| 欧美日韩在线一区二区三区| 欧美性大战久久久久久久| 午夜精品美女久久久久av福利| 久久久亚洲影院你懂的| 亚洲第一页自拍| 午夜一区在线| 免费的成人av| 国产精品老女人精品视频| 国产一区二区精品久久99| 亚洲激情视频网站| 欧美成人久久| 免费观看一级特黄欧美大片| 国产精品99久久久久久久久| 老牛嫩草一区二区三区日本| 国产一区二区激情| 99精品视频免费全部在线| 久久九九热免费视频| 亚洲国产一区二区三区高清| 久久久久99| 国产免费亚洲高清| 亚洲视频久久| 亚洲国产岛国毛片在线| 亚洲欧美日韩国产一区二区| 欧美不卡一区| 米奇777超碰欧美日韩亚洲| 国产日韩在线视频| 99精品久久免费看蜜臀剧情介绍| 欧美一区二区三区另类 | 99精品欧美一区二区蜜桃免费| 欧美日韩国产麻豆| 欧美一级久久| 欧美精品v国产精品v日韩精品| 亚洲性视频网址| 你懂的国产精品| 美女任你摸久久| 狠狠久久五月精品中文字幕| 亚洲视频电影在线| 久久精品欧洲| 国产精品欧美风情| 久久视频国产精品免费视频在线 | 欧美美女操人视频| 久久欧美肥婆一二区| 国产精品成人一区二区三区夜夜夜 | 国产自产精品|