hdu--1075--字典樹||map

做這題的時候 我完全沒想到 字典樹 就直接用map來做了 =-=

我是有 多不 敏感啊~~

然后去 discuss 一看 很多都是說 字典樹的問題....

字典樹 給我感覺 它的各個操作的意思都很清晰明了 直接手寫 不那么容易啊。。

晚些 時候 試下來寫------用map寫是真心方便 只要注意下那么\n的吸收之類的? 但是 速度上是的確慢了許多 基本要卡1000ms 雖然這題是給了5000ms 怎么給那么大的時間

?    touch ? me

 1 #include <iostream>
 2 #include <map>
 3 #include <string>
 4 using namespace std;
 5 
 6 map<string,string>mp;
 7 string str;
 8 string str1;
 9 string str2;
10 string sen;
11 
12 int main()
13 {
14     cin.sync_with_stdio(false);
15     mp.clear();
16     cin >> str;// start
17     while( cin>>str1 && str1!="END" )
18     {
19         cin >> str2;
20         mp[str2] = str1;
21     }
22     getchar();
23     getline(cin,str);// start
24     while( getline(cin,str1) && str1!="END" )
25     {
26         sen = "";
27         int len = str1.length();
28         for( int i = 0 ; i<len ; i++ )
29         {
30             if( str1[i]>='a' && str1[i]<='z' )
31             {
32                 sen += str1[i];
33             }
34             else
35             {
36                 if( sen!="")
37                 {
38                     if( mp.find(sen)!=mp.end() )
39                         cout << mp[sen];
40                     else
41                         cout << sen;
42                 }
43                 cout << str1[i];
44                 sen = "";
45             }
46             if( i==len-1 && (str1[i]>='a'&&str1[i]<='z') )
47             {
48                 if( sen!="" )
49                 {
50                     if( mp.find(sen)!=mp.end() )
51                         cout << mp[sen];
52                     else
53                         cout << sen;
54                 }
55             }
56         }
57         cout << endl;
58     }
59     return 0;
60 }
View Code

?--------實在懶得敲代碼...昨天的擱到今天剛剛才寫好

  1 #include <iostream>
  2 #include <cstring>
  3 using namespace std;
  4 
  5 const int size = 26;
  6 const int num = 15;
  7 char str[num];
  8 char str1[3010];
  9 char str2[num];
 10 char str3[num];
 11 char str4[num];
 12 typedef struct trie
 13 {
 14     trie* next[size];
 15     char ans[num];
 16 };
 17 trie root;
 18 
 19 void init( )
 20 {
 21     root.ans[0] = '\0';
 22     for( int i = 0 ; i<size ; i++ )
 23     {
 24         root.next[i] = NULL;
 25     }
 26 }
 27 
 28 void create( char* str1 , char* str2 )
 29 {
 30     int len = strlen(str1);
 31     trie* p = &root;
 32     trie* q;
 33     for( int i = 0 ; i<len ; i++ )
 34     {
 35         int id = str1[i] - 'a';
 36         if( p->next[id] == NULL )
 37         {
 38             q = new trie;
 39             q->ans[0] = '\0';
 40             for( int i = 0 ; i<size ; i++ )
 41             {
 42                 q->next[i] = NULL;
 43             }
 44             p->next[id] = q;
 45         }
 46         p = p->next[id];
 47     }
 48     strcpy( p->ans , str2 );
 49 }
 50 
 51 char* find( char* str )
 52 {
 53     int len = strlen(str);
 54     trie* p = &root;
 55     for( int i = 0 ; i<len ; i++ )
 56     {
 57         int id = str[i] - 'a';
 58         if( p->next[id] == NULL )
 59             return str;
 60         p = p->next[id];
 61     }
 62     if( strlen(p->ans) )
 63         return p->ans;
 64     else
 65         return str;
 66 }
 67 
 68 void dealTrie( trie* T )
 69 {
 70     if( T == NULL )
 71     {
 72         return;
 73     }
 74     for( int i = 0; i<size ; i++ )
 75     {
 76         if( T->next[i] != NULL )
 77         {
 78             dealTrie( T->next[i] );
 79         }
 80     }
 81     delete T;
 82     return;
 83 }
 84 
 85 int main()
 86 {
 87     int cnt , len;
 88     init();
 89     scanf( "%s",str );
 90     while( scanf( "%s",str1) && strcmp(str1,"END") )
 91     {
 92         scanf( "%s",str2 );
 93         create( str2 , str1 );
 94     }
 95     scanf( "%s",str );
 96     getchar();
 97     while( gets(str1) )
 98     {
 99         if( !strcmp(str1,"END") )
100         {
101             dealTrie(&root);
102             break;
103         }
104         cnt = 0;
105         str4[cnt] = '\0';
106         len = strlen(str1);
107         for( int i = 0 ; i<len ; i++ )
108         {
109             if( str1[i]>='a' && str1[i]<='z' )
110             {
111                 str4[cnt++] = str1[i];
112             }
113             else
114             {
115                 str4[cnt] = '\0';
116                 cout << find(str4);
117                 cnt = 0;
118                 printf( "%c",str1[i] );
119             }
120             if( i==len-1 && ( str1[i]>='a' && str1[i]<='z' ) )
121             {
122                 str4[cnt] = '\0';
123                 cout << find(str4);
124             }
125         }
126         cout << endl;
127     }
128     return 0;
129 }
View Code

?

關于 字典樹 分 靜態 和 動態版本 我還是個人傾向于動態的 寫起來方便啊...雖然會 內存大點 時間慢點 一般應該是能過的吧

?

?

today:

  祝天下有情人皆是失散多年的兄妹

          ------希望如愿

?

轉載于:https://www.cnblogs.com/radical/p/3887096.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/260175.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/260175.shtml
英文地址,請注明出處:http://en.pswp.cn/news/260175.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

歸檔七

課后作業1 運行 TestInherits.java &#xff0c;觀察輸出&#xff0c;總結父類與子類之間構造方法的調用關系修改Parent構造方法的代碼&#xff0c;調用GrandParent的另一個構造函數。 class Grandparent { public Grandparent() { System.out.println("GrandParent Creat…

php的類裝載的步驟,設計PHP自動類裝載功能

在使用面向對象方法做PHP開發時&#xff0c;可能會經常使用到各個路徑中的類文件&#xff0c;這就需要大量的 include 或 require&#xff0c;而 PHP 提供了一個比較快捷的方式&#xff0c;就是利用函數 __autoload 可以編程實現動態的類裝載功能&#xff0c;這樣就不需要手動的…

python 重定向 ctf_3.CTF——python利用工具

web AWD 攻與防CTF線下賽主要考察代碼審計能力及運維能力&#xff0c;代碼審計發現漏洞&#xff0c;python寫利用漏洞&#xff0c;運維發現可疑攻擊目標&#xff0c;異常流量&#xff0c;異常權限&#xff0c;重要業務備份與還原。用運維的知識加固系統與業務。當被人攻擊以后&…

網站首頁幻燈片

Js頁面: View Code /** * 大眼睛廣告輪播 */ var indexEye {autoTime: 0,init: function () {var eyeObj $("#dyj_pics a:eq(0) img:eq(0)");eyeObj.attr("src", eyeObj.attr("data-imgSrc"));eyeObj.load(function () {indexEye.autoTime se…

【java】錯誤 找不到或無法加載主類

很詭異&#xff0c;class文件夾下的class文件沒有了&#xff0c;刪除文件夾 &#xff0c;重新編譯下。。。轉載于:https://www.cnblogs.com/merlini/p/3892719.html

Qt之QAbstractItemView視圖項拖拽(二)

一、需求說明 上一篇文章Qt之QAbstractItemView視圖項拖拽(一)講述了實現QAbstractItemView視圖項拖拽的一種方式&#xff0c;是基于QDrag實現的&#xff0c;這個類是qt自己封裝好了的&#xff0c;所以可定制性也就沒有了那么強&#xff0c;最明顯的是&#xff0c;這個類在執…

電腦控制蘋果手機_必備神器,電腦控制手機

序一款電腦端的神器&#xff0c;它可以任意的操縱你的手機。****QtScrcpy可以通過USB(或通過TCP/IP)連接Android設備&#xff0c;并進行顯示和控制。不需要root權限。單個應用程序最多支持16個安卓設備同時連接。同時支持GNU/Linux&#xff0c;Windows和MacOS三大主流桌面平臺。…

php未定義要怎樣做,php-Behat-未定義的功能步驟

我設置了一個簡單的測試場景來學習behat,但是我遇到了一些問題.我正在關注THIS教程.這是我的專題節目&#xff1a;Feature: showThis is a behat feature to test the article pages.##TODOScenario: I want to view a detailed article pageGiven I am logged inAnd Im on &qu…

CentOS 命令大全 (轉)

1、查看系統使用端口并釋放端口 [rootmy_nn_01 WEB-INF]# lsof -w -n -i tcp:80 COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME java 24065 root 34u IPv6 269149 TCP *:http (LISTEN) [rootmy_nn_01 WEB-INF]# kill -9 24065 2、以KB/MB形式顯示文件列表…

微信接口改良

之前公司微信開發的時候 寫了個微信的接口改良版,當然好多想改進的都沒改。。大概是太懶了 &#xff08;囧 /*** Created by DFH on 13-12-16.*//*--htmlvar shareData {//分享展示圖片地址 **必須"imgUrl": "a.jpg",//分享至朋友圈鏈接 **必須&q…

生活大爆炸版石頭剪刀布

題目描述 Description石頭剪刀布是常見的猜拳游戲&#xff1a;石頭勝剪刀&#xff0c;剪刀勝布&#xff0c;布勝石頭。如果兩個人出拳一樣&#xff0c;則不分勝負。在《生活大爆炸》第二季第8集中出現了一種石頭剪刀布的升級版游戲。升級版游戲在傳統的石頭剪刀布游戲的基礎上&…

oracle18c卸載方法,在debian 10上安裝和卸載oracle數據庫快捷版18c第4版

安裝oracle-xe-18c的步驟此安裝向導依賴軟件包alien。由于oracle并未提供oracle-xe-18c的deb包&#xff0c;故需要通過alien命令將oracle-xe-18c的rpm格式的安裝包導出新的deb格式的安裝包&#xff1a;sudo alien --scripts -d oracle-database-xe-18c-1.0-1.x86_64.rpm相應rpm…

解決:缺少aclocal、autoconf、automake

下載三個包&#xff1a;autoconf-2.68.tar.bz2、automake-1.11.1.tar.bz2、m4-1.4.14.tar.bz2 1、su - root 2、tar xjf XXXXX.tar.bz2 3、cd m4/ 4、./configure make make install 5、cd autoconf/ 6、./configure make make install 7、cd automake/ 8、./configure…

jquery事件 on(),live(),delegate(),blind()

jQuery推出on()的目的有2個&#xff0c;一是為了統一接口&#xff0c;二是為了提高性能&#xff0c; 所以從現在開始用on()替換bind(), live(), delegate吧。 尤其是不要再用live()了&#xff0c;因為它已經處于不推薦使用列表了[1.7已經被刪除]。 如果只綁定一次事件&#xff…

Swift 開發的工具類,主要是提供正則表達式及其它,Github會長期維護

直接訪問 GitHub 看代碼 YYGRegular 我是&#xff1a; 語歌復制代碼It is a regular expression used on iOS, which implement by Swift 這是一個基于swift快捷開發的擴展類&#xff0c;目前的涵蓋內容包括詳細打印&#xff0c;正則表達式&#xff0c;會經常維護 介于是增加更…

用python慶祝生日_生日到底該過陰歷還是陽歷好呢?不是迷信,都怪我們大意!...

過生日到底該過陰歷還是陽歷&#xff1f;答案說出來你可能都不信在我們國家&#xff0c;過生日有兩種不同的方式&#xff0c;因為有兩種不同的日子的計算方式&#xff0c;分為陰歷和陽歷。一般來說&#xff0c;在農村和一些比較落后的地方&#xff0c;人們習慣于用陰歷來計算生…

websphere jndi oracle,websphere7.0獲得JNDI連接報invalid username/password

Exception in thread "P497968:O0:CT" java.sql.SQLException: ORA-01017: invalid username/password; logon deniedDSRA0010E: SQL 狀態&#xff1a;72000&#xff0c;錯誤碼&#xff1a;1,017at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapp…

WSS3.0自帶數據庫可以使用SQL 2005 Server Management Studio來管理

默認情況下&#xff0c;安裝完WSS3.0后&#xff0c;會自動安裝一個自帶的SQL Server 2005 Embedded Edition數據庫&#xff0c;但是此數據庫卻沒有管理工具,不像安裝SQL 2005其它版本會有管理工具。如果你要管理數據庫&#xff0c;這時怎么辦呢。經過俺試了一上午了&#xff0c…

CPU的高速緩存存儲器知識整理

基于緩存的存儲器層次結構 基于緩存的存儲器層次結構行之有效&#xff0c;是因為較慢的存儲設備比較快的存儲設備更便宜&#xff0c;還因為程序往往展示局部性&#xff1a; 時間局部性&#xff1a;被引用過一次的存儲器的位置很可能在不遠的將來被再次引用。 空間局部性&#x…

uniapp光標自動定義到文本框_word技巧自動生成畢業論文目錄

一篇word文檔&#xff0c;內容有大的章&#xff0c;小的節。如何把章節抽出來生成目錄&#xff1f;WORD →點擊需要插入的地方 → 插入菜單 → 索引和目錄 → 目錄 → 確定。1 創建標題目錄Word 一般是利用標題或者大綱級別來創建目錄的。因此&#xff0c;在創建目錄之前&#…