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

            ACM___________________________

            ______________白白の屋
            posts - 182, comments - 102, trackbacks - 0, articles - 0
            <2010年11月>
            31123456
            78910111213
            14151617181920
            21222324252627
            2829301234
            567891011

            常用鏈接

            留言簿(24)

            隨筆分類(332)

            隨筆檔案(182)

            FRIENDS

            搜索

            積分與排名

            最新隨筆

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            MiYu原創(chuàng), 轉(zhuǎn)帖請(qǐng)注明 : 轉(zhuǎn)載自 ______________白白の屋    

             

            這幾天一直很YM..... 糾結(jié).....  做個(gè)水題 1075......WA N次.....YM.
            (  很簡(jiǎn)單的一題,  檢索輸入的串是否存在, 存在就替換輸出, 不存在直接輸出就可以了 )
            最后無奈, 純C++ STL..過了, 時(shí)間竟然用了 1600+MS 還是 C++交的,  G++要3400+MS,  不
            明白為什么時(shí)間差那么多,  用trie 做了次, 250MS...   改了好幾次效率都上不來   ....  YM 中 把trie 寫成了 偽 map ,只有一點(diǎn)簡(jiǎn)單的功能,
            其他的不想寫了.  寫得好復(fù)雜.................... 
            偽 map 代碼如下 :  好長(zhǎng).....................
            /*
            MiYu原創(chuàng), 轉(zhuǎn)帖請(qǐng)注明 : 轉(zhuǎn)載自 ______________白白の屋
                      http://www.cnblog.com/MiYu
            Author By : MiYu
            Test      : 4
            Program   : 1075
            */

            #include <iostream>
            #include <string>
            using namespace std;
            typedef struct dict DIC;
            DIC *root = NULL;
            string ext = "";
            struct dict {
                   dict (){ str = "";memset ( child , 0 , sizeof ( child ) ); }
                   ~dict () { }
                   void del ( DIC * node );
                   string & insert ( char *ins,char *key = NULL );
                   string & find ( char *ins );
                   string & operator [] ( char *a );
                   string & operator = ( char *a );
                   DIC *child[26];
                   string str; 
            };
            void dict::del ( DIC * node )
            {
                 if ( node == NULL ) return;
                 for ( int i = 0; i != 26; ++ i )
                 {
                      if ( node->child[i] != NULL )  del ( node->child[i] );
                 }
                 node->str = "";
                 free ( node );  
            }
            string & dict::operator [] ( char *a )
            {
                   string &str = find ( a );
                   if ( str == "" )
                       return  insert ( a );  
                   return str;
            }
            string & dict::operator = ( char *a )
            {
                  return this->str = a; 
            }
            string & dict::insert ( char *ins,char *key )
            {
                        DIC *cur = this,*now;
                        int len = strlen ( ins );
                        for ( int i = 0; i != len; ++ i )
                        {
                              if ( cur->child[ ins[i] - 'a' ] != NULL ) 
                              {
                                   cur = cur->child[ ins[i] - 'a' ];
                              }
                              else
                              {
                                   now = new DIC;
                                   cur->child[ ins[i] - 'a' ] = now;
                                   cur = now;
                              }
                        } 
                        return cur->str;
            }
            string & dict::find ( char *ins )
            {
                        DIC *cur = this;
                        int len = strlen ( ins );
                        for ( int i = 0; i != len; ++ i )
                        {
                             if ( cur->child[ ins[i] - 'a' ] != NULL )
                                  cur = cur->child[ ins[i] - 'a' ];  
                             else
                                  return ext; 
                        } 
                        return cur->str;
            }
            char words[3010],temp[12],t[12];
            int main ()
            {
                DIC dict;
                root = &dict;
                scanf ( "%s", t );
                while ( scanf ( "%s", t ), strcmp ( t, "END" ) != 0 )
                {
                       scanf ( "%s", temp );
                       dict[temp] = t;
                }
                scanf ( "%s", t );
                getchar();
                while ( gets ( words ) && strcmp ( words, "END" ) != 0 )
                {
                       memset ( temp, 0, sizeof ( temp ) );
                       int len = strlen ( words );
                       for ( int i = 0,j = 0; i != len; ++ i )
                       {
                            if ( isalpha ( words[i] ) )
                            {
                                 temp[j++] = words[i];
                            } 
                            else 
                            {
                                 temp[j] = '\0';
                                 string str = dict[ temp ];
                                 if ( str == "" )
                                      printf ( "%s",temp ); 
                                 else
                                      printf ( "%s",str.c_str() );
                                 putchar ( words[i] );
                                 j = 0; 
                            }
                       }
                       putchar ( 10 );
                }
                return 0;
            }

             

             STL 代碼如下 :  好短....

             /*

            MiYu原創(chuàng), 轉(zhuǎn)帖請(qǐng)注明 : 轉(zhuǎn)載自 ______________白白の屋

                      http://www.cnblog.com/MiYu

            Author By : MiYu

            Test      : 1

            Program   : 1075

            */


            #include <iostream>

            #include <string>

            #include <map>

            using namespace std;

            string words,temp;

            map < string , string > mp;

            int main ()

            {

                cin >> words;

                while ( cin >> words, words != "END" )

                {

                       cin >> temp;

                       mp[ temp ] = words;

                }

                cin >> words;

                getchar();

                while ( getline ( cin, words ) && words != "END" )

                {

                       string out = "";

                       int len = words.size();

                       for ( int i = 0; i != len; ++ i )

                       {

                            if ( isalpha ( words[i] ) )

                            {

                                 out += words[i];

                            } 

                            else 

                            {

                                 if ( mp[out] == "" )

                                      cout << out; 

                                 else

                                      cout << mp[out];

                                 cout << words[i];

                                 out = ""; 

                            }

                       }

                       cout << endl;

                }

                return 0;

            }


             

             

             

             

            老男人久久青草av高清| 久久免费美女视频| 一本大道加勒比久久综合| 色欲av伊人久久大香线蕉影院| 久久久久亚洲爆乳少妇无 | 久久精品一本到99热免费| 久久亚洲精品无码VA大香大香| 久久久久黑人强伦姧人妻 | 国产精品久久久久一区二区三区 | 国产精品久久久久久影院| 久久久久久午夜成人影院 | 日韩久久久久中文字幕人妻 | 香蕉99久久国产综合精品宅男自 | 久久婷婷五月综合97色直播| 国内精品久久国产| 亚洲精品无码久久久久| 国内精品伊人久久久久av一坑| 久久久精品国产sm调教网站| 久久国产免费观看精品| 久久久综合香蕉尹人综合网| 国产精品久久久香蕉| 人妻无码久久一区二区三区免费| 久久亚洲AV成人无码电影| 青青草原1769久久免费播放| 久久黄色视频| 亚洲av日韩精品久久久久久a | 久久国产色AV免费看| 久久香蕉国产线看观看乱码| 久久99精品久久久久久9蜜桃 | 伊人久久大香线蕉av一区| 久久91亚洲人成电影网站| 亚洲午夜精品久久久久久人妖| 欧美激情精品久久久久久久九九九 | A级毛片无码久久精品免费| 国产∨亚洲V天堂无码久久久| 久久精品国产一区二区 | 国产亚洲精久久久久久无码AV| 亚洲精品tv久久久久久久久久| 91精品国产91久久久久福利| 一级做a爰片久久毛片免费陪| 亚洲综合日韩久久成人AV|