HDU 1251 統計難題(Trie模版題)

統計難題

Time Limit: 4000/2000 MS (Java/Others)????Memory Limit: 131070/65535 K (Java/Others)
Total Submission(s): 34909????Accepted Submission(s): 13109

Problem Description
Ignatius最近遇到一個難題,老師交給他很多單詞(只有小寫字母組成,不會有重復的單詞出現),現在老師要他統計出以某個字符串為前綴的單詞數量(單詞本身也是自己的前綴).

?

Input
輸入數據的第一部分是一張單詞表,每行一個單詞,單詞的長度不超過10,它們代表的是老師交給Ignatius統計的單詞,一個空行代表單詞表的結束.第二部分是一連串的提問,每行一個提問,每個提問都是一個字符串.

注意:本題只有一組測試數據,處理到文件結束.

?

Output
對于每個提問,給出以該字符串為前綴的單詞的數量.

?

Sample Input
banana
band
bee
absolute
acm
ba
b
band
abc

?

Sample Output
2 3 1 0

?

題目鏈接:HDU 1251

以前以為很高級的數據結構,原來就是一個很多后繼節點的鏈表而已,建立過程很簡單明了,不懂的話畫一個多叉樹就知道了……,每一次從表頭*root(最近學的是鏈表,就用*L好了)開始找,然后如果存在就繼續找直到遍歷完字符串,插入和查找都是這個原理還有最好別用G++提交容易爆內存,C++就不會了

代碼:

#include <stdio.h>
#include <iostream>
#include <algorithm>
#include <cstdlib>
#include <sstream>
#include <cstring>
#include <bitset>
#include <string>
#include <deque>
#include <stack>
#include <cmath>
#include <queue>
#include <set>
#include <map>
using namespace std;
#define INF 0x3f3f3f3f
#define CLR(x,y) memset(x,y,sizeof(x))
#define LC(x) (x<<1)
#define RC(x) ((x<<1)+1)
#define MID(x,y) ((x+y)>>1)
typedef pair<int,int> pii;
typedef long long LL;
const double PI=acos(-1.0);
const int N=26;
const int M=15;
struct Trie
{Trie *nxt[N];int cnt;Trie(){CLR(nxt,0);cnt=0;}
};
Trie *L=new Trie();
void update(char s[])
{int len=strlen(s);int indx;Trie *cur=L;for (int i=0; i<len; ++i){indx=s[i]-'a';if(cur->nxt[indx]){cur=cur->nxt[indx];++(cur->cnt);}else{Trie *one=new Trie();++(one->cnt);cur->nxt[indx]=one;cur=cur->nxt[indx];///新建之后還是要跳到這個新建節點的}}
}
int Find(char s[])
{int len=strlen(s);Trie *cur=L;int indx;for(int i=0; i<len; ++i){indx=s[i]-'a';if(!cur->nxt[indx])return 0;cur=cur->nxt[indx];}return cur->cnt;
}
char s[M];
int main(void)
{while (gets(s)&&strcmp(s,""))update(s);while (gets(s))printf("%d\n",Find(s));return 0;
}

轉載于:https://www.cnblogs.com/Blackops/p/5904583.html

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

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

相關文章

SQLServer數據庫收縮相關知識筆記

1、為什么要進行數據庫收縮&#xff1f;SQL Server 數據庫采取預先分配空間的方法來建立數據庫的數據文件或者日志文件&#xff0c;比如數據文件的空間分配了300MB&#xff0c;而實際上只占用了20MB空間&#xff0c;這樣就會造成磁盤存儲空間的浪費。可以通過數據庫收縮技術對數…

libvirt vnc花屏_centos6.5下VNC花屏解決方法

問題描述1、FusionCompute平臺搭建完成后&#xff0c;創建基于RHEL6.5 64bit版本的虛擬機&#xff0c;完成虛擬機初始安裝后&#xff0c;VNC界面出現花屏&#xff0c;無法登入Redhat桌面系統2、在創建虛擬機時&#xff0c;系統安裝向導配置了網絡&#xff0c;在花屏界面下可以通…

enum操作--獲取枚舉里的最大值

一個應用系統&#xff0c;如果程序里沒有任何enum的使用&#xff0c;我認為它的可讀性是有待商榷的。 求枚舉里的最大/最小枚舉值&#xff0c; 其實是對Array進行操作&#xff1a; enum EnumTest{ddd 2,eee} var arr1 Enum.GetValues(typeof(EnumTest)); //返回值是一個Array…

呂梁離石學校計算機專業在哪里,山西呂梁計算機大專學校有哪些太重技校告訴您...

山西呂梁計算機大專學校有哪些太重技校告訴您。選擇專業的***關鍵的因素是你自身的興趣&#xff0c;其他只能參考&#xff0c;如果你能準確的知道自己的興趣所在&#xff0c;未來的職業所選&#xff0c;那么只需要一招就可以吃遍天。相信我&#xff0c;一生為自己感興趣的事情奮…

網絡安全:六種常見的網絡攻擊手段

??作者主頁&#xff1a;IT技術分享社區 ??作者簡介&#xff1a;大家好,我是IT技術分享社區的博主&#xff0c;從事C#、Java開發九年&#xff0c;對數據庫、C#、Java、前端、運維、電腦技巧等經驗豐富。 ??個人榮譽&#xff1a; 數據庫領域優質創作者&#x1f3c6;&#x…

3種團隊分組適應項目_分組團隊競賽活動方案

為營造新年春節期間良好的經營氛圍&#xff0c;形成規范有效的服務流程&#xff0c;促進員工快樂積極向上工作&#xff0c;鑄造峽市娛樂行業名牌&#xff0c;經KTV 管理人員研究制定以下分組評比競賽方案&#xff1a;第一&#xff1a;分組辦法。1、KTV主管楊海軍、華磊、馮磊、…

Spring Security(18)——Jsp標簽

目錄 1.1 authorize 1.2 authentication 1.3 accesscontrollist Spring Security也有對Jsp標簽的支持的標簽庫。其中一共定義了三個標簽&#xff1a;authorize、authentication和accesscontrollist。其中authentication標簽是用來代表當前Authentication對象的&…

e4a html文本,E4A?怎么將剪貼版中的文本?粘貼到窗口的光標處啊?求個代碼

滿意答案百幻蝶V木桃2017.05.20采納率&#xff1a;49% 等級&#xff1a;8已幫助&#xff1a;1710人■如何打開剪貼板查看器 當您從某個程序剪切或復制信息時&#xff0c;該信息會被移動到剪貼板并保留在那里&#xff0c;直到您清除剪貼板或者您剪切或復制了另一片信息。“剪…

電腦技巧:七款U盤修復軟件

??作者主頁&#xff1a;IT技術分享社區 ??作者簡介&#xff1a;大家好,我是IT技術分享社區的博主&#xff0c;從事C#、Java開發九年&#xff0c;對數據庫、C#、Java、前端、運維、電腦技巧等經驗豐富。 ??個人榮譽&#xff1a; 數據庫領域優質創作者&#x1f3c6;&#x…

cdrx8如何批量導出jpg_Coreldraw/CDR X8 存低版本打開問題 – 數碼打印破圖 – Coreldraw/CDR軟件崩潰 – 漸變導位圖角度變了...

Coreldraw/CDR X8 存低版本打開問題 – 數碼打印破圖 – Coreldraw/CDR軟件崩潰 – 漸變導位圖角度變了Coreldraw/CDR X8 存低版本打開問題各位大神&#xff0c;小弟最近安裝了Coreldraw/CDR X8 &#xff0c;在設計文件時&#xff0c;會遇到給文字設計套白邊&#xff0c;問題來…

[deviceone開發]-do_SlideListView的簡單示例

一、簡介 利用提供的SlideListVIew實現那種cell可以滑動露出底部按鈕的功能 主要組件&#xff1a;do_slidelistview 二、效果圖 三、相關討論 http://bbs.deviceone.net/forum.php?modviewthread&tid269 四、相關下載 https://github.com/do-project/code4do/tree/master/…

Git:Rebase和Merge之間的區別,看完這篇文章你就懂了!

社區中長期以來一直在爭論我們應該使用Merge還是Rebase。有人會說Merge更好&#xff0c;因為它保留了最完整的工作歷史。其他人則認為&#xff0c;Rebase變得更整潔&#xff0c;這使審閱者的生活更輕松&#xff0c;更高效。本文將解釋合并和重新設置之間的區別是什么&#xff0…

計算機b級英語翻譯,英語B級考試翻譯必備常用短句

英語B級考試翻譯必備常用短句1. Who would say like this?誰會這樣說呢&#xff1f;2. What time shall we leave?我們什么時候出發呢&#xff1f;3. We are going to play golf this Sunday.我們這個星期天要去打高爾夫球。4. Do you want to go out or stay at home?你想出…

weblogic概覽下的上下文根配置_Weblogic服務下獲取上下文路勁問題

問題描述&#xff1a;如果一個項目用weblogic部署的服務&#xff0c;在web_inf文件夾下只有web.xml文件&#xff0c;沒有配置weblogic.xml文件時&#xff0c;這是用類.class.getClassLoader().getResource("").getPath() 該方法獲取到的絕對路勁是如下&#xff1a;/…

干貨:SQLServer數據庫基于PowerDesigner逆向工程生成PDM文件

在日常的開發工程中&#xff0c;很多時候需要提供數據庫設計文檔&#xff0c;如果當時數據庫設計沒有采用PowerDesinger&#xff0c;到后期需要給客戶提供數據庫設計文檔、后期項目運維就會比較麻煩&#xff0c;今天給大家介紹如何使用PowerDesigner的逆向工程生成SQLServer數據…

檢查 Linux 服務器性能

如何用十條命令在一分鐘內檢查 Linux 服務器性能 如果你的Linux服務器突然負載暴增&#xff0c;報警短信快發爆你的手機&#xff0c;如何在最短時間內找出Linux性能問題所在&#xff1f;來看Netflix性能工程團隊的這篇博文&#xff0c;看它們通過十條命令在一分鐘內對機器性能問…

html 圓球的百分比,HTML5 很酷的球形器皿中水波狀的進度條

CSS語言&#xff1a;CSSSCSS確定* {box-sizing: border-box;}html,body {height: 100%;}body {background-color: #1a1a1a;font-family: sans-serif;font-size: 15px;color: #ccc;}input[type"text"] {background-color: transparent;margin-top: 30px;border: 0;bor…