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

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>
            欧美黄色影院| 亚洲人成网站色ww在线| 久久久久久夜| 国产精品网站在线| 久久国产主播精品| 久久狠狠亚洲综合| 葵司免费一区二区三区四区五区| 久久久久五月天| 免费在线成人| 亚洲精品国产品国语在线app| 美乳少妇欧美精品| 欧美福利精品| 一区二区日韩精品| 欧美专区在线| 欧美看片网站| 国产精品综合久久久| 尤物网精品视频| 一区二区三区欧美日韩| 欧美一级视频精品观看| 蜜臀av在线播放一区二区三区| 亚洲国产福利在线| 亚洲免费中文字幕| 亚洲一区二区三区在线播放| 欧美亚州在线观看| 国产一区二区高清| 亚洲免费av电影| 欧美亚洲一级| 91久久久在线| 久久久不卡网国产精品一区| 欧美激情综合在线| 狠狠色噜噜狠狠狠狠色吗综合| 亚洲黑丝一区二区| 久久国产主播精品| 一区二区不卡在线视频 午夜欧美不卡在 | 亚洲视频自拍偷拍| 久久国产成人| 亚洲美女视频网| 久久夜色精品国产| 国产精品一区2区| 欧美精品一区二区三区在线看午夜| 99精品久久| 午夜精品在线观看| 91久久午夜| 亚洲欧美日韩直播| 亚洲激情国产| 亚洲专区免费| 亚洲激情视频网| 亚洲午夜在线| 91久久综合| 欧美一区二区三区免费在线看| 亚洲福利视频网站| 亚洲午夜一区二区| 亚洲精品美女在线观看| 日韩亚洲欧美综合| 香港久久久电影| 亚洲人成人一区二区三区| 久久aⅴ国产欧美74aaa| 国产一区二区三区在线观看免费视频| 亚洲欧美国产制服动漫| 一区二区三区久久网| 欧美日韩免费观看一区| 亚洲精品国产拍免费91在线| 欧美国产日本| 欧美日韩国产免费| 亚洲一品av免费观看| 99热在这里有精品免费| 欧美日韩另类视频| 亚洲一区免费看| 亚洲一区二区成人在线观看| 国产精品欧美久久久久无广告| 亚洲一品av免费观看| 亚洲午夜电影网| 国产精品亚洲网站| 久久久精品动漫| 久久蜜臀精品av| 亚洲精品日韩精品| 一级日韩一区在线观看| 国产精品视频免费一区| 中文网丁香综合网| 欧美一级视频| 国产精品国产a级| 欧美专区18| 久久久视频精品| 99国产精品久久久久久久久久| 夜夜嗨av一区二区三区| 国产日韩在线一区二区三区| 免费亚洲电影在线观看| 欧美精品一区二区三区久久久竹菊| 亚洲视频电影图片偷拍一区| 亚洲在线成人精品| 欧美三级免费| 你懂的网址国产 欧美| 亚洲国产高清一区| 另类酷文…触手系列精品集v1小说| 麻豆久久精品| 亚洲高清视频在线观看| 久久综合色影院| 亚洲精品国产精品久久清纯直播| 美女精品视频一区| 亚洲国产日韩欧美综合久久| 亚洲精品免费电影| 欧美日韩免费观看一区=区三区| 亚洲剧情一区二区| 亚洲深夜福利| 亚洲精品日韩激情在线电影 | 精品96久久久久久中文字幕无| 欧美国产免费| 国产伦精品一区二区三区在线观看 | 国产亚洲欧美中文| 亚洲福利视频免费观看| 国产欧美一二三区| 日韩视频免费观看| 在线观看欧美精品| 午夜国产精品视频| 99re66热这里只有精品3直播| 久久国产精品久久久久久久久久| 日韩亚洲欧美成人| 久久久久9999亚洲精品| 亚洲永久字幕| 欧美人在线视频| 欧美激情一区二区久久久| 国产婷婷色一区二区三区在线| 亚洲乱码国产乱码精品精98午夜| 精品成人一区二区三区四区| 亚洲女优在线| 欧美一二区视频| 国产精品久久婷婷六月丁香| 亚洲精品你懂的| 一本一本大道香蕉久在线精品| 欧美1区视频| 亚洲大胆人体在线| 在线欧美亚洲| 老司机精品视频网站| 欧美国产三级| 亚洲电影欧美电影有声小说| 午夜精品久久久久| 欧美日韩在线观看视频| 亚洲精品乱码久久久久久按摩观 | 99精品热视频| 国产有码一区二区| 欧美日韩aaaaa| 欧美一区二区三区婷婷月色| 亚洲国产裸拍裸体视频在线观看乱了中文 | 亚洲剧情一区二区| 国产精品毛片a∨一区二区三区|国 | 国产日韩欧美不卡| 国产亚洲成精品久久| 亚洲图片欧洲图片日韩av| 在线一区免费观看| 欧美日韩中文在线| 宅男噜噜噜66国产日韩在线观看| 在线亚洲精品福利网址导航| 欧美极品色图| av成人天堂| 欧美在线播放一区二区| 国产视频久久久久久久| 欧美在线视频播放| 欧美寡妇偷汉性猛交| 亚洲日本一区二区三区| 欧美理论电影网| 亚洲男女毛片无遮挡| 美女精品自拍一二三四| 亚洲日本成人| 国产精品国产三级国产专区53| 性视频1819p久久| 欧美激情一区二区三区| 一区二区三区日韩精品视频| 国产精品婷婷| 久久午夜色播影院免费高清| 亚洲人成亚洲人成在线观看| 亚洲免费视频一区二区| 国模套图日韩精品一区二区| 女同一区二区| 亚洲一区二区三区免费在线观看| 久久久久91| 一区二区黄色| 韩国一区电影| 欧美日韩综合久久| 久久精品九九| 亚洲乱码日产精品bd| 久久久91精品| 亚洲一区二区免费看| 韩国一区二区三区美女美女秀| 欧美人牲a欧美精品| 久久精品一区二区三区四区| av不卡在线看| 亚洲国产高清视频| 久久精品一本久久99精品| 一本色道久久综合亚洲91| 国产综合久久久久久鬼色| 欧美色综合天天久久综合精品| 久久国产天堂福利天堂| 亚洲一区二区三区四区视频| 欧美国产1区2区| 黑人一区二区三区四区五区| 欧美揉bbbbb揉bbbbb| 美日韩精品免费| 久久久噜噜噜| 欧美福利视频在线观看| 亚洲看片网站|