HDU 1800(字典树)
2008-09-01 11:26
155 查看
简单的字典树水题,统计为单词前缀的单词数,取最大,注意要去前0,具体原理还是自己想想吧,最大数决定了最大分组。
诶 PKU月赛之后 我发现我只会水的 ..............
#include<iostream>
#include <queue>
using namespace std;
struct node
{
long num;
int next[10];
void init(){memset(next,-1,sizeof(next));num=0;}
}s[200000];
int p;
char a[100];
inline void preprocess(){s[p=0].init();}
long lmax;
inline void insert()
{
int index=0;
// ++s[index].num;
bool begin=false;
for(int i=0;a[i]!='\0';++i)
{
if (a[i]!='0')
{
begin=true;
}
if (!begin)
{
continue;
}
int x=a[i]-'0';
if(s[index].next[x]==-1)
{
s[++p].init();
s[index].next[x]=p;
}
index=s[index].next[x];
}
s[index].num++;
if (s[index].num>lmax)
{
lmax=s[index].num;
}
}
int main()
{
long n;
while (scanf("%ld",&n)!=EOF)
{
lmax=0;
getchar();
preprocess();
long i;
for (i=0;i<n;++i)
{
gets(a);
insert();
}
printf("%ld\n",lmax);
}
return 0;
}
诶 PKU月赛之后 我发现我只会水的 ..............
#include<iostream>
#include <queue>
using namespace std;
struct node
{
long num;
int next[10];
void init(){memset(next,-1,sizeof(next));num=0;}
}s[200000];
int p;
char a[100];
inline void preprocess(){s[p=0].init();}
long lmax;
inline void insert()
{
int index=0;
// ++s[index].num;
bool begin=false;
for(int i=0;a[i]!='\0';++i)
{
if (a[i]!='0')
{
begin=true;
}
if (!begin)
{
continue;
}
int x=a[i]-'0';
if(s[index].next[x]==-1)
{
s[++p].init();
s[index].next[x]=p;
}
index=s[index].next[x];
}
s[index].num++;
if (s[index].num>lmax)
{
lmax=s[index].num;
}
}
int main()
{
long n;
while (scanf("%ld",&n)!=EOF)
{
lmax=0;
getchar();
preprocess();
long i;
for (i=0;i<n;++i)
{
gets(a);
insert();
}
printf("%ld\n",lmax);
}
return 0;
}
相关文章推荐
- hdu 1800 Flying to the Mars(字典树||map||hash)
- hdu 1800 Flying to the Mars (字典树)
- HDU 1800 Flying to the Mars(Trie字典树 upper_bound)
- 字典树 之 hdu 1800
- hdu 1800 (字典树)
- [字典树] hdu 1800 fly to the mar
- 文章标题 HDU 1800:Flying to the Mars(字典树)
- 字典树 之 hdu 1800
- hdu 1800 Flying to the Mars(HashMap水过,可用字典树)
- hdu 1800 Flying to the Mars 字典树
- [字典树、map] HDU 1800 - Flying to the Mars
- HDU 1800 Flying to the Mars(贪心 MAP 字典树 HASH)
- hdu 1800 字典树
- hdu 1800 Flying to the Mars(字典树统计)
- hdu 1800 字典树
- hdu 1800字典树
- hdu 1800 字符串水题 可用字符串hash 字典树做 我用了最水的排序水过
- hdu1800 Flying to the Mars(字典树)
- HDU 1800 Flying to the Mars(字典树水题)
- Flying to the Mars HDU 1800(字典树)