• <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年8月>
            25262728293031
            1234567
            891011121314
            15161718192021
            22232425262728
            2930311234

            常用鏈接

            留言簿(24)

            隨筆分類(lèi)(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)單的一題,  檢索輸入的串是否存在, 存在就替換輸出, 不存在直接輸出就可以了 )
            最后無(wú)奈, 純C++ STL..過(guò)了, 時(shí)間竟然用了 1600+MS 還是 C++交的,  G++要3400+MS,  不
            明白為什么時(shí)間差那么多,  用trie 做了次, 250MS...   改了好幾次效率都上不來(lái)   ....  YM 中 把trie 寫(xiě)成了 偽 map ,只有一點(diǎn)簡(jiǎn)單的功能,
            其他的不想寫(xiě)了.  寫(xiě)得好復(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;

            }


             

             

             

             

            成人国内精品久久久久影院VR| 久久久黄色大片| 天天久久狠狠色综合| 97精品国产91久久久久久| 91亚洲国产成人久久精品网址| 久久精品女人天堂AV麻| 亚洲中文字幕无码久久2017| 国内精品久久久久影院日本| 精品久久久久久国产免费了| 久久久久久精品免费看SSS| AA级片免费看视频久久| 少妇人妻综合久久中文字幕| 久久久中文字幕| 久久免费的精品国产V∧| 人妻丰满?V无码久久不卡| 国产精品美女久久久m| 亚洲午夜精品久久久久久浪潮| 久久精品视频网| 无码AV中文字幕久久专区 | 欧美久久久久久| 国产福利电影一区二区三区久久久久成人精品综合 | 99久久国产免费福利| 久久精品国产99久久久古代| 久久播电影网| 久久精品一区二区三区不卡| 亚洲AV无码一区东京热久久 | 色天使久久综合网天天| 麻豆国内精品久久久久久| 国内精品久久久久伊人av| 亚洲人成网亚洲欧洲无码久久| 欧美激情精品久久久久久久九九九| 四虎国产精品免费久久5151| 国产精品99精品久久免费| 韩国免费A级毛片久久| 久久人人爽人人爽人人AV东京热| 无码任你躁久久久久久老妇App| 亚洲午夜久久久| 亚洲欧美一区二区三区久久| Xx性欧美肥妇精品久久久久久| 99久久精品国产一区二区三区 | 国产成人精品久久|