hdu1800 Flying to the Mars (字典树)
来源:互联网 发布:python dictionary 编辑:程序博客网 时间:2024/05/22 01:37
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=1800
题解:the minimum number of broomsticks needed,The soldier who has a higher level could teach the lower , that is to say the former’s level > the latter’s . But the lower can’t teach the higher.说明高level的教低level的,同level不能互教,所以最少 broomsticks ,就是同level最多的soldier。
#include <stdio.h> #include <string.h> #define MAXN 3005 int tot; typedef struct trie { int cnt;//当前单词出现的次数 struct trie *child[10]; }trie; struct trie Trie[MAXN]; struct trie *root; trie *newtrie() {//静态分配空间 int i; trie *ptr; ptr=&Trie[tot++]; ptr->cnt=0; for(i=0;i<10;++i) ptr->child[i]=NULL; return ptr; } int insert(char *str) { int i=0,len,index; trie *ptr=root; len=strlen(str); if(len==0) return 0; while ((str[i]=='0')&&(i<len-1)){i++;} for(;i<len;++i) { index=str[i]-'0'; if(ptr->child[index]!=NULL) ptr=ptr->child[index]; else {ptr->child[index]=newtrie();//新增一节点 ptr=ptr->child[index];//更新节点 } } ptr->cnt++;return ptr->cnt;} int main() { int n,ans,temp; char level[32];while (scanf("%d",&n)!=EOF){ans=tot=0; root=newtrie(); while (n--){scanf("%s",level);temp=insert(level);if(ans<temp)ans=temp;}printf("%d\n",ans);} return 0; }
#include <stdio.h> #include <string.h> #define MAXN 3002 int child[MAXN][10];//child[i][j]=0说明没有对应的节点,以i为根节点的子树, int flag[MAXN],count[MAXN]; int tot,root; void Trie() { memset(child[0],0,sizeof(child[0])); flag[0]=0; tot=root=0;//根节点为0 } int insert(char *str) { int *cur=&root,len,i=0; char *ptr; len=strlen(str);while (str[i]=='0'&&i<len-1){i++;} for(ptr=str+i;*ptr;++ptr) { cur=&child[*cur][*ptr-'0']; if(*cur==0) { *cur=++tot; memset(child[tot],0,sizeof(child[tot])); flag[tot]=0; } } flag[*cur]=1; return ++count[*cur]; } int main() { int n,ans,temp; char level[32];while (scanf("%d",&n)!=EOF){memset(count,0,sizeof(count));ans=0; Trie(); while (n--){scanf("%s",level);temp=insert(level);if(ans<temp)ans=temp;}printf("%d\n",ans);} return 0; }
- 【字典树】 hdu1800 Flying to the Mars
- hdu1800 Flying to the Mars (字典树)
- Hdu1800 - Flying to the Mars - 字典树
- HDU1800 Flying to the Mars【字典树】
- hdu1800 Flying to the Mars--字典树
- Flying to the Mars hdu1800 字典树
- hdu1800 Flying to the Mars(字典树)
- HDU1800 Flying to the Mars Tire树
- HDU1800 Flying to the Mars
- HDU1800 Flying to the Mars
- HDU1800-Flying to the Mars
- hdu1800 Flying to the Mars
- hdu1800 Flying to the Mars(map)
- hdu1800 Flying to the Mars ELFHash/BKDHash
- HDU1800 Flying to the Mars 【贪心】
- Flying to the Mars hdu1800 trie
- HDU1800 Flying to the Mars(贪心)
- Flying to the Mars(字典树)
- UVA 1361 Cactus (改)
- hdu4568 Hunter
- HDU_2031 进制转换
- CBLAS的安装与使用
- Unity的一些笔试题,大侠们帮忙改改答案哦!
- hdu1800 Flying to the Mars (字典树)
- 注解方式配置spring
- wordpress添加顶级菜单
- 关于<AppName>-Prefix.pch文件的科幻用法
- strstr定义及用法
- 力荐 75种jquery特效 一键下载 用过挺好的
- 英文自我介绍 introduce
- 看了下观察者模式。。。是用C++写的,然后回到java,看到Obserable简直喜不自胜啊
- 亿能 性能测试课程 2013年度 公开课 深圳站