zoukankan      html  css  js  c++  java
  • HDU 1671 phone list

    http://acm.hdu.edu.cn/showproblem.php?pid=1671

    字典树的题目,在POJ上的时候字典树的话会因为不断开辟新的节点而消耗过多的时间,所以会开一个固定的空间.....

    但是我不知道该开多大的空间....o(╯□╰)o 

    看别人的代码是开到 100000...话说我不知道为什么只要那么点就可以了....

    Code
     1 #include <stdio.h>
     2 #include <stdlib.h>
     3 #include <string.h>
     4 #include <iostream>
     5 using namespace std;
     6 struct node
     7 {
     8     int num,f;
     9     node *next[10];
    10 };
    11 typedef node* link;
    12 link head;
    13 int f = 0;
    14 
    15 void btree(char s[],link r)
    16 {
    17     int i, j, l,len;
    18     link p;
    19     if(f)  return ;
    20     len = strlen(s);
    21     for(i = 0; i < len; i++)
    22     {
    23         j = s[i] - '0';
    24         if(!r->next[j])
    25         {
    26             p = (link)malloc(sizeof(node));
    27             p->num = 1;
    28             p->f = 0;
    29             for(l = 0; l < 10; l++)
    30             p->next[l] = NULL;
    31             r->next[j] = p;
    32             r = p;
    33         }
    34         else
    35         {
    36             r = r->next[j];
    37             r->num++;
    38         }
    39         if(i == len -1) r->f = 1;
    40         if(r->num == 2 && r->f == 1 ) f = 1;
    41     }
    42 }
    43 
    44 void realse(link r)
    45 {
    46     int i;
    47     if(!r) return ;
    48     else
    49     {
    50         for(i = 0; i < 10; i++)
    51         realse(r->next[i]);
    52         free(r);
    53     }
    54     return ;
    55 } 
    56 
    57 int main()
    58 {
    59     char s[12];
    60     int n, m, i;
    61     scanf("%d",&n);
    62     while(n--)
    63     {
    64         head = (link)malloc(sizeof(node));
    65         for(i = 0; i < 10; i++)
    66         head->next[i] = NULL;
    67         scanf("%d",&m);
    68         f=0;
    69         for(i = 0; i < m; i++)
    70         {
    71             scanf("%s",s);
    72             btree(s, head);
    73         }
    74         if(f) printf("NO\n");
    75         else printf("YES\n");
    76         realse(head);
    77     }
    78     return 0;
    79 }
  • 相关阅读:
    cors
    js 离开页面
    移动端 touch
    eclipse
    java获取classpath以外的路径
    Javascript类型转换的规则
    myeclipse开发安装C++
    MyEclipse10中配置开发Python所需要的PyDev 绝对靠谱 不忽悠!
    POI生成EXCEL,公式不自动执行的有关问题
    POI中设置Excel单元格格式样式(居中,字体,边框等)
  • 原文地址:https://www.cnblogs.com/yoru/p/2661519.html
Copyright © 2011-2022 走看看