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

            USACO 1.2 Name That Number

            題目鏈接:http://ace.delos.com/usacoprob2?a=RqgnadOgSCH&S=namenum

            題意很簡(jiǎn)單,就是把數(shù)字串轉(zhuǎn)換成可能的字母串。
            由于字典很小(<5000),字母串到數(shù)字串的映射是唯一的,反過(guò)來(lái)算很簡(jiǎn)單。
            如果用回溯法算數(shù)字串到字母串的映射再在字典中折半查找,時(shí)間復(fù)雜度為O(3^12*log(5000)),肯定會(huì)超時(shí)。

            代碼如下:
            #include <iostream>
            #include 
            <fstream>
            #include 
            <string>
            #include 
            <vector>

            using namespace std;

            ifstream fin(
            "namenum.in");
            ofstream fout(
            "namenum.out");

            #ifdef _DEBUG
            #define out cout
            #define in cin
            #else
            #define out fout
            #define in fin
            #endif

            //將字母映射到數(shù)字,不存在的為-1
            int map[] = {2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,7,-1,7,7,8,8,8,9,9,9,-1};

            void solve()
            {
               
            string object;
               
            in>>object;
                
               
            int len;
               len 
            = object.size();

               fstream dict_in(
            "dict.txt");
               vector
            <string> dict;

               
            string temp;

               
            while( dict_in>>temp ){
                   
            if(temp.size()==len){
                       
            //只取等于數(shù)字串相等的字符串
                       dict.push_back(temp);
                   }
               }

               
            //sort(dict.begin(),dict.end());
               
            //dict.txt文件已經(jīng)排好序,無(wú)需排序了.

               
            bool find = false;
               
            bool has_result = false;

               
            for(int i=0;i<dict.size();++i){
                   find 
            = true;
                   
            for(int j=0;j<len;++j){
                       
            if(map[dict[i][j]-'A']!=object[j]-'0'){
                           find 
            = false;
                           
            break;
                       }
                   }

                   
            if(find){
                       
            out<<dict[i]<<endl;
                       has_result 
            = true;
                   }
               }

               
            if(!has_result)
                   
            out<<"NONE"<<endl;
            }


            int main(int argc,char *argv[])
            {
              solve(); 
              
            return 0;
            }


            posted on 2009-06-05 13:36 YZY 閱讀(1259) 評(píng)論(0)  編輯 收藏 引用 所屬分類: AlgorithmUSACO

            導(dǎo)航

            <2009年7月>
            2829301234
            567891011
            12131415161718
            19202122232425
            2627282930311
            2345678

            統(tǒng)計(jì)

            常用鏈接

            留言簿(2)

            隨筆分類

            隨筆檔案

            搜索

            積分與排名

            最新評(píng)論

            閱讀排行榜

            久久最新精品国产| 亚洲国产精品无码久久青草 | 久久久久高潮综合影院| 久久伊人影视| 久久国产劲爆AV内射—百度| 欧洲成人午夜精品无码区久久| 亚洲综合伊人久久大杳蕉| 久久综合亚洲欧美成人| 久久综合精品国产二区无码| 久久综合欧美成人| 亚洲欧美另类日本久久国产真实乱对白 | 久久国产V一级毛多内射| 亚洲伊人久久综合影院| 国产婷婷成人久久Av免费高清| 久久影视国产亚洲| 久久久久久国产精品免费无码| 久久一区二区三区免费| AV狠狠色丁香婷婷综合久久| 亚洲国产香蕉人人爽成AV片久久| 久久精品人人槡人妻人人玩AV | 亚洲精品无码专区久久久| 曰曰摸天天摸人人看久久久| 亚洲国产精品无码成人片久久| 内射无码专区久久亚洲| 久久国产精品-国产精品| 久久久噜噜噜久久中文字幕色伊伊| 久久亚洲国产午夜精品理论片| 无码人妻久久一区二区三区| 日韩电影久久久被窝网| 久久e热在这里只有国产中文精品99 | 久久99精品久久只有精品| 一本久久综合亚洲鲁鲁五月天| 精品久久人人妻人人做精品| 99久久免费国产精品| 国产午夜久久影院| 精品久久久久久国产91| 精品永久久福利一区二区| 久久精品国产亚洲AV不卡| 99久久www免费人成精品| 久久久久亚洲AV片无码下载蜜桃| 中文字幕无码久久久|