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

            pku2138 Travel Games DP找最長鏈

            題意是這樣
            給出一些字符串,如果字符串i可以由字符串j刪除一個字母而獲得,則字符串i可以導出字符串j。
            現求以固定字符串開頭的最長鏈
            把字符串看成圖的節點,一次DP即可~
            預處理的時候有點技巧,先對字符串按其長度排序,然后線掃+Hash即可在線性時間內構圖,總復雜度即排序的復雜度nlogn
            現在對java是又恨又愛,喜歡里面的Hash表,但是經常暴內存空間讓人很頭疼,經常是不調用System.gc就MLE,每組測試數據前調用一次就TLE,然后就開始艱難的嘗試,2組測試數據調用一次,3組測試數據調用一次,無限循環
             1import java.io.*;
             2import java.util.*;
             3public class Main {
             4
             5    /**
             6     * @param args
             7     */

             8    static class cmp implements Comparator<String>
             9    {
            10        public int compare(String a,String b)
            11        {
            12            return a.length()-b.length();
            13        }

            14    }

            15    static ArrayList<String> data=new ArrayList<String>();
            16    static HashMap<String,Integer> refer=new HashMap<String,Integer>();
            17    static ArrayList<Integer> g[];
            18    static int dp[];
            19    static int path[];
            20    static int solve(int pos)
            21    {
            22        if(dp[pos]!=-1return dp[pos];
            23        else
            24        {
            25            dp[pos]=1;
            26            for(int p:g[pos])
            27                if(solve(p)+1>dp[pos])
            28                {
            29                    dp[pos]=solve(p)+1;
            30                    path[pos]=p;
            31                }

            32            return dp[pos];
            33        }

            34    }

            35    public static void main(String[] args) throws IOException{
            36        StreamTokenizer in=new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
            37        in.nextToken();
            38        int num=(int)in.nval;
            39        in.nextToken();
            40        String str=in.sval;
            41        int startnum=-1;
            42        g=new ArrayList[num];
            43        dp=new int[num];
            44        path=new int[num];
            45        Arrays.fill(dp,-1);
            46        Arrays.fill(path,-1);
            47        for(int i=1;i<=num;i++)
            48        {
            49            in.nextToken();
            50            data.add(in.sval);
            51        }

            52        Collections.sort(data,new cmp());
            53        for(int i=0;i<data.size();i++)
            54        {
            55            g[i]=new ArrayList<Integer>();
            56            for(int j=0;j<data.get(i).length();j++)
            57              if(refer.containsKey(data.get(i).substring(0,j)+data.get(i).substring(j+1)))
            58                  g[refer.get(data.get(i).substring(0,j)+data.get(i).substring(j+1))].add(i);
            59            refer.put(data.get(i), i);
            60            if(startnum==-1&&str.equals(data.get(i))) startnum=i;
            61        }

            62        solve(startnum);
            63        while(path[startnum]!=-1) startnum=path[startnum];
            64        System.out.println(data.get(startnum));
            65    }

            66
            67}

            68
            69

            posted on 2010-11-01 22:21 yzhw 閱讀(229) 評論(0)  編輯 收藏 引用 所屬分類: DPgraph

            <2011年7月>
            262728293012
            3456789
            10111213141516
            17181920212223
            24252627282930
            31123456

            導航

            統計

            公告

            統計系統

            留言簿(1)

            隨筆分類(227)

            文章分類(2)

            OJ

            最新隨筆

            搜索

            積分與排名

            最新評論

            閱讀排行榜

            无码人妻久久一区二区三区免费| 久久精品国产久精国产思思| 国产—久久香蕉国产线看观看| 久久综合九色综合精品| 99久久国产热无码精品免费久久久久| 久久久久成人精品无码| 亚洲午夜久久久久久久久久| 久久亚洲国产精品一区二区| 日韩亚洲国产综合久久久| 色婷婷综合久久久久中文一区二区 | 国产精品久久久久久久久| 久久精品国产精品亚洲艾草网美妙| 久久99热这里只有精品国产| 国产精品一区二区久久精品| 一级a性色生活片久久无| 国产精品18久久久久久vr| 漂亮人妻被中出中文字幕久久 | 国产成人无码精品久久久性色| 精品国产福利久久久| 久久99九九国产免费看小说| 久久青青草原综合伊人| 色欲综合久久中文字幕网| 亚洲精品无码久久毛片| 亚洲国产精品热久久| 久久久久人妻一区精品性色av| 日韩一区二区三区视频久久 | 欧美亚洲国产精品久久久久| 亚洲国产精品久久久久婷婷软件| 久久综合综合久久综合| 久久婷婷午色综合夜啪| 久久本道久久综合伊人| 69国产成人综合久久精品| 国产精品久久久久久久久久影院 | 99久久精品免费看国产一区二区三区 | 亚洲国产成人精品91久久久| 99久久精品九九亚洲精品| 国产精品久久久久jk制服| 久久久久久久97| 日韩AV无码久久一区二区| 婷婷五月深深久久精品| 亚洲AV乱码久久精品蜜桃|