青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆-72  評(píng)論-126  文章-0  trackbacks-0
今天學(xué)習(xí)了字典樹
做了一些以前用二分搜索解決的題目
hdoj的1075
http://acm.hdu.edu.cn/showproblem.php?pid=1075
用很腦殘的方法過的,每個(gè)節(jié)點(diǎn)有設(shè)置11個(gè)字符(n)記錄,這樣浪費(fèi)空間很大
看過后臺(tái)數(shù)據(jù),最大長(zhǎng)度是4,有26^4個(gè)(字典序aaaa到zzzz)如果再多一點(diǎn),內(nèi)存就爆了
效率很低。。這道題目字典樹不如二分

hdoj的1247
http://acm.hdu.edu.cn/showproblem.php?pid=1247
也用了不是很好的方法過掉,枚舉每個(gè)字符分成兩段,看是不是在字典樹內(nèi)
用n標(biāo)記是不是一個(gè)單詞

hdoj的1251
http://acm.hdu.edu.cn/showproblem.php?pid=1251
這個(gè)就是最基礎(chǔ)的字典樹了,n來(lái)標(biāo)記這個(gè)前綴的次數(shù)

hdoj的1298
http://acm.hdu.edu.cn/showproblem.php?pid=1298
這道就比前幾道難了,dfs所有數(shù)字變成字母的可能情況,然后找到最大的概率的打印
dfs借鑒了yifeifen的int hash[10][2]={0,0, 0,0, 0,2, 3,5, 6,8, 9,11, 12,14, 15,18, 19, 21, 22,25};來(lái)記錄每個(gè)數(shù)字對(duì)應(yīng)的字母
這個(gè)就方便多了。。。
我用了最差的效率過的,每次都重新找一邊,本來(lái)還超時(shí)的,后來(lái)優(yōu)化一下,已經(jīng)MANUALLY的就不用繼續(xù)找下去了,后來(lái)的保證都MANUALLY
了。。。

還有usaco的一道
 1 Contact
 2 IOI'98
 3 
 4 The cows have developed a new interest in scanning the universe outside their farm with radiotelescopes. Recently, they noticed a very curious microwave pulsing emission sent right from the centre of the galaxy. They wish to know if the emission is transmitted by some extraterrestrial form of intelligent life or if it is nothing but the usual heartbeat of the stars.
 5 
 6 Help the cows to find the Truth by providing a tool to analyze bit patterns in the files they record. They are seeking bit patterns of length A through B inclusive (1 <= A <= B <= 12) that repeat themselves most often in each day's data file. They are looking for the patterns that repeat themselves most often. An input limit tells how many of the most frequent patterns to output.
 7 
 8 Pattern occurrences may overlap, and only patterns that occur at least once are taken into account.
 9 PROGRAM NAME: contact
10 INPUT FORMAT
11 Line 1:     Three space-separated integers: A, B, N; (1 <= N < 50)
12 Lines 2 and beyond:     A sequence of as many as 200,000 characters, all 0 or 1; the characters are presented 80 per line, except potentially the last line.
13 SAMPLE INPUT (file contact.in)
14 
15 2 4 10
16 01010010010001000111101100001010011001111000010010011110010000000
17 
18 
19 In this example, pattern 100 occurs 12 times, and pattern 1000 occurs 5 times. The most frequent pattern is 00, with 23 occurrences.
20 OUTPUT FORMAT
21 
22 Lines that list the N highest frequencies (in descending order of frequency) along with the patterns that occur in those frequencies. Order those patterns by shortest-to-longest and increasing binary number for those of the same frequency. If fewer than N highest frequencies are available, print only those that are.
23 
24 Print the frequency alone by itself on a line. Then print the actual patterns space separated, six to a line (unless fewer than six remain).
25 SAMPLE OUTPUT (file contact.out)
26 
27 23
28 00
29 15
30 01 10
31 12
32 100
33 11
34 11 000 001
35 10
36 010
37 8
38 0100
39 7
40 0010 1001
41 6
42 111 0000
43 5
44 011 110 1000
45 4
46 0001 0011 1100
47 


大意就是叫你找出
01010010010001000111101100001010011001111000010010011110010000000
長(zhǎng)度2于4之間的出現(xiàn)頻率最高10個(gè)串

是TTBJ大大介紹我做的。。
寫了一個(gè)半小時(shí),終于把sample過掉了,叫TTBJ幫我提交,記過RE。。。。
他幫我檢查了一下說(shuō)別用指針,常常會(huì)出現(xiàn)錯(cuò)誤的。。。
給了我一個(gè)用數(shù)組的模板
可惜我試了下好像C語(yǔ)言無(wú)法使用,只能割愛了。。。

今天下午用TTBJ的模板再次嘗試好幾遍只后
終于AC了,好開心阿
  1 #include<stdio.h>
  2 #include<string.h>
  3 #include<stdlib.h>
  4 struct tree{
  5     char data;
  6     int cnt,child[2];
  7     void init(char c){
  8         memset(child,0,sizeof(child));
  9         data = c;
 10         cnt = 0;
 11     }
 12 }T[1000001];
 13 struct H{
 14     int n;
 15     char ch[13];
 16 }hh[10000];
 17 int L = 1;
 18 int a,b,n,k,ans;
 19 char ch[200001],temp[13];
 20 
 21 void Ins(char *a,int k,int idx)
 22 {
 23     if(!a[k])
 24     {
 25         T[idx].cnt ++;
 26         return ;
 27     }
 28     if(T[idx].child[ a[k]-'0' ])
 29         Ins(a,k+1,T[idx].child[a[k]-'0']);
 30     else
 31     {
 32         T[idx].child[a[k]-'0'= ++L;
 33         T[L].init(a[k]);
 34         Ins(a,k+1,L);
 35     }
 36 }
 37 void Creat()
 38 {
 39     int i,j,l,ii,len = strlen(ch);
 40     char s[13];
 41     for(i=0;ch[i];i++)
 42     {
 43         for(l=a,j=i,ii=0;l<=b;l++)
 44         {
 45             if(i+l>len)
 46                 break;
 47             for(;j<i+l;j++,ii++)
 48             {
 49                 s[ii] = ch[j];
 50             }
 51             s[ii] = 0;
 52             Ins(s,0,1);
 53         }
 54     }
 55 }
 56 void find(char *a,int k,int idx)
 57 {
 58     if(!a[k])
 59     {
 60         ans = T[idx].cnt;
 61         return ;
 62     }
 63     if(T[idx].child[a[k]-'0']==0)
 64         return ;
 65     find(a,k+1,T[idx].child[a[k]-'0']);
 66 }
 67 
 68 void dfs(int i)
 69 {
 70     if(i==b)
 71         return ;
 72     temp[i+1= 0
 73 
 74     temp[i] = '0';
 75     if(a<=i+1)
 76     {
 77         strcpy(hh[k].ch,temp);
 78         ans = 0;
 79         find(temp,0,1);
 80         hh[k].n = ans;//符合條件,找
 81         k++;
 82     }
 83     dfs(i+1);
 84     
 85     temp[i+1= 0
 86     temp[i] = '1';
 87     if(a<=i+1)
 88     {
 89         strcpy(hh[k].ch,temp);
 90         ans = 0;
 91         find(temp,0,1);
 92         hh[k].n = ans;
 93         k++;
 94     }
 95     dfs(i+1);
 96 }
 97 int to_2(char *a,char *b)
 98 {
 99     int aa=0,bb=0;
100     for(;*a;a++)
101         aa = aa*2 + *-'0';
102     for(;*b;b++)
103         bb = bb*2 + *-'0';
104     return aa>bb?1:-1;
105 }
106 int cmp(const void *a,const void *b)
107 {
108     struct H * c = (struct H *)a;
109     struct H * d = (struct H *)b;
110     if(d->== c->n)
111     {
112         if(strlen(c->ch) == strlen(d->ch))
113             return to_2(c->ch,d->ch);
114         return strlen(c->ch) - strlen(d->ch);
115     }
116     return d->- c->n;
117 }
118 int main()
119 {
120     int i,count,sum,cnt;
121     while (scanf("%d%d%d",&a,&b,&n)==3)
122     {
123         if(a>b)
124             a^=b,b^=a,a^=b;
125         ch[0= 0;
126         while(scanf("%s",temp)==1)
127             strcat(ch,temp);
128         Creat();//建樹
129         k = 0;
130         dfs(0);//枚舉所有點(diǎn)
131         qsort(hh,k,sizeof(hh[0]),cmp);
132         count = -1;
133         i = 0;
134         sum = -1;
135         
136         while (1)//輸出
137         {
138             if(hh[i].n!=sum)
139             {
140                 if(i)
141                     puts("");
142                 count ++;
143                 if(count == n)
144                     break;
145                 sum = hh[i].n;
146                 printf("%d\n",hh[i].n);
147                 printf("%s",hh[i].ch);
148                 i++;
149                 if(hh[i].n==0)
150                 {
151                     puts("");
152                     break;
153                 }
154                 cnt = 1;
155             }
156             else
157             {
158                 cnt ++;
159                 if(cnt == 7)
160                 {
161                     cnt = 1;
162                     puts("");
163                 }
164                 else 
165                     printf(" ");
166                 printf("%s",hh[i].ch);
167                 i++;
168                 if(hh[i].n==0)
169                 {
170                     puts("");
171                     break;
172                 }
173             }
174         }
175     }
176     return 0;
177 }



好吧,字典樹算是掌握了基礎(chǔ),明天的任務(wù):線段樹~!
posted on 2009-02-10 02:11 shǎ崽 閱讀(531) 評(píng)論(0)  編輯 收藏 引用

只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            久久青草欧美一区二区三区| 欧美极品色图| 久久精品在线播放| 国产精品啊啊啊| 亚洲精品一区二区在线| 久久都是精品| 亚洲女同精品视频| 国产精品日韩在线观看| 亚洲神马久久| 一区二区国产精品| 国产精品久久久久9999高清| 亚洲尤物在线| 亚洲一区二区三区在线观看视频| 国产精品久久久久久久久久ktv| 亚洲香蕉在线观看| 一区二区三区四区五区视频| 欧美日韩999| 欧美岛国在线观看| 亚洲精品久久嫩草网站秘色| 亚洲动漫精品| 欧美激情二区三区| 一二美女精品欧洲| 久久亚洲高清| 久久婷婷麻豆| 夜夜嗨一区二区三区| 欧美freesex交免费视频| 久久久亚洲精品一区二区三区| 在线免费观看日韩欧美| 亚洲欧洲视频在线| 一区二区三区免费网站| 亚洲精品日产精品乱码不卡| 欧美人与性动交cc0o| 亚洲一区在线免费| 午夜视频在线观看一区| 精品999网站| 91久久精品www人人做人人爽| 欧美日韩一区二区三区视频| 新67194成人永久网站| 久久久久久999| 一区二区高清| 欧美资源在线观看| 亚洲精品中文字幕女同| 亚洲一区亚洲| 亚洲精品一二三| 亚洲欧美日韩在线一区| 亚洲国产三级在线| 亚洲一区国产| 亚洲欧洲一区二区天堂久久| 亚洲午夜久久久| 亚洲电影免费观看高清完整版在线观看| 亚洲激情综合| 国产在线欧美| 亚洲天堂黄色| 亚洲精品久久久久久久久| 亚洲一区二区三| 亚洲人成网站在线观看播放| 亚洲小少妇裸体bbw| 最近中文字幕mv在线一区二区三区四区| 99国产精品久久久久久久成人热| 国产综合网站| 亚洲视频狠狠| 99re6热在线精品视频播放速度| 亚洲欧美色一区| 这里只有精品在线播放| 久久久久在线观看| 欧美在线一二三| 欧美视频日韩| 亚洲黑丝一区二区| 1769国产精品| 久久精品在线观看| 欧美一区二区三区免费观看视频| 欧美福利影院| 亚洲成色777777女色窝| 国产亚洲精品v| 亚洲影院在线| 亚洲女同同性videoxma| 欧美电影美腿模特1979在线看 | 亚洲高清久久久| 香蕉久久夜色精品国产使用方法| 欧美诱惑福利视频| 久久成人资源| 欧美日韩免费一区二区三区| 欧美国产日本高清在线| 国产亚洲一区二区三区在线播放| 99精品视频免费在线观看| 亚洲精品免费在线| 美女久久一区| 久久久久中文| 国产综合第一页| 欧美一区二区三区在线| 久久国产精品亚洲va麻豆| 国产精品男gay被猛男狂揉视频| 亚洲美女黄网| 亚洲一区一卡| 国产精品久久久久永久免费观看 | 一区二区三区高清| 欧美日韩国产美女| 日韩视频在线一区二区| 99xxxx成人网| 欧美日韩国产首页| 日韩午夜电影在线观看| 亚洲视频精品| 国产精品日韩高清| 香蕉久久夜色精品国产| 久久综合色影院| 亚洲人屁股眼子交8| 欧美日韩免费观看一区| 99re6这里只有精品| 亚洲欧美日韩视频一区| 国产亚洲精品久久久| 久久久在线视频| 亚洲激情电影在线| 中日韩午夜理伦电影免费| 国产精品入口麻豆原神| 久久精品国产91精品亚洲| 欧美激情亚洲激情| 亚洲特级片在线| 国产精品一国产精品k频道56| 欧美一区二区免费观在线| 免费不卡在线观看av| 99re热精品| 国产精品毛片高清在线完整版| 欧美一区2区三区4区公司二百| 久久男人资源视频| 亚洲免费久久| 国产午夜精品全部视频播放| 久久久青草婷婷精品综合日韩| 亚洲国产婷婷| 欧美中日韩免费视频| 亚洲国产日韩一级| 国产精品一区毛片| 免费国产一区二区| 亚洲一区二区三区中文字幕| 欧美jizzhd精品欧美喷水 | 亚洲高清视频在线观看| 亚洲一区二区成人| 在线精品国精品国产尤物884a| 欧美日韩国产综合久久| 久久精品视频网| 9色精品在线| 欧美电影在线观看完整版| 亚洲一区二区三区四区视频| 国语自产精品视频在线看8查询8 | 久久国产精品高清| 亚洲伊人网站| 久久久www成人免费精品| 国产婷婷色一区二区三区| 欧美一区二区三区久久精品| 99爱精品视频| 欧美视频在线播放| 亚洲欧美日韩成人高清在线一区| 久久先锋影音| 日韩系列在线| 亚洲欧美三级在线| 亚洲欧洲精品一区二区三区| 先锋影音国产精品| 99国产成+人+综合+亚洲欧美| 国产主播一区二区三区四区| 欧美香蕉大胸在线视频观看| 欧美大尺度在线观看| 久久精品午夜| 欧美在线精品一区| 亚洲影院免费观看| 亚洲色诱最新| 在线亚洲+欧美+日本专区| 亚洲人成网站777色婷婷| 欧美国产一区二区在线观看| 久久综合五月| 久久一区二区视频| 久久精品一区二区三区不卡牛牛| 亚洲欧美日韩国产中文| 亚洲一区在线直播| 亚洲影院色在线观看免费| 亚洲午夜精品17c| av成人免费观看| 日韩一区二区精品视频| 99精品视频免费观看| 一本色道久久加勒比精品| 99国产一区| 亚洲图中文字幕| 亚洲永久免费视频| 欧美一级专区免费大片| 亚洲欧美中文另类| 欧美一级视频免费在线观看| 欧美一级夜夜爽| 久久丁香综合五月国产三级网站| 久久国产欧美日韩精品| 久久久综合网站| 欧美成人69| 亚洲经典视频在线观看| 日韩写真视频在线观看| 一区二区三区导航| 亚洲女女做受ⅹxx高潮| 欧美淫片网站| 免费成人av在线| 欧美日韩国产精品自在自线| 国产精品久久久久久久第一福利| 国产亚洲精品资源在线26u| 亚洲第一页在线| 一区二区三区欧美视频|