POJ 3630 Phone List
2009-10-05 13:16
323 查看
/*
Trie树,一开始用的class, new, delete等面向对象的东西,结果TLE
后来改用数组实现就OK了
这题只需要insert操作,无需search操作,边插入边判断就OK了
*/
#include <iostream>
#define MAX_N 120000
using namespace std;
int trieTree[MAX_N + 1][12]; //第10位是ID,第11位是count
int countv = 0;
bool insert(char phone[], int id)
{
int curNode = 0, i, next;
char c;
for(i = 0; i < strlen(phone); i++)
{
c = phone[i];
trieTree[curNode][11]++;
next = trieTree[curNode][c - '0'];
if(next == 0)
trieTree[curNode][c- '0'] = next = ++countv;
curNode = next;
if(trieTree[curNode][10] != 0)
return false;
}
if(trieTree[curNode][11] > 0)
return false;
trieTree[curNode][10] = id;
return true;
}
int main()
{
int caseNum, c, i, pNum;
char temp[10];
scanf("%d", &caseNum);
for(c = 0; c < caseNum; c++)
{
memset(trieTree, 0, sizeof(trieTree));
countv = 0;
scanf("%d", &pNum);
bool can = true;
for(i = 0; i < pNum; i++)
{
scanf("%s", temp);
if(can)
if(!insert(temp, i + 1))
can = false;
}
if(can)
printf("YES/n");
else
printf("NO/n");
}
return 0;
}
Trie树,一开始用的class, new, delete等面向对象的东西,结果TLE
后来改用数组实现就OK了
这题只需要insert操作,无需search操作,边插入边判断就OK了
*/
#include <iostream>
#define MAX_N 120000
using namespace std;
int trieTree[MAX_N + 1][12]; //第10位是ID,第11位是count
int countv = 0;
bool insert(char phone[], int id)
{
int curNode = 0, i, next;
char c;
for(i = 0; i < strlen(phone); i++)
{
c = phone[i];
trieTree[curNode][11]++;
next = trieTree[curNode][c - '0'];
if(next == 0)
trieTree[curNode][c- '0'] = next = ++countv;
curNode = next;
if(trieTree[curNode][10] != 0)
return false;
}
if(trieTree[curNode][11] > 0)
return false;
trieTree[curNode][10] = id;
return true;
}
int main()
{
int caseNum, c, i, pNum;
char temp[10];
scanf("%d", &caseNum);
for(c = 0; c < caseNum; c++)
{
memset(trieTree, 0, sizeof(trieTree));
countv = 0;
scanf("%d", &pNum);
bool can = true;
for(i = 0; i < pNum; i++)
{
scanf("%s", temp);
if(can)
if(!insert(temp, i + 1))
can = false;
}
if(can)
printf("YES/n");
else
printf("NO/n");
}
return 0;
}
相关文章推荐
- poj 3630 Phone List( 简单字典树 )
- POJ3630 Phone List 题解&代码
- POJ 3630 Phone List(解题报告)
- poj 3630 || zoj 2876 ||hdu 1671 Phone List (Trie树的应用)
- Trie树学习小记 Poj 3630 & Hdu1671 Phone List
- poj 3630 Phone List (字典树 +静态字典树)
- poj 3630 Phone List
- POJ 3630 HDU 1671--Phone List【string】
- POJ 3630 Phone List/POJ 1056 【字典树】
- poj - 3630 - Phone List(数组Trip)
- POJ 3630 Phone List
- poj 3630 Phone List trie树—字典树 静态数组版!!!
- Phone List POJ 3630 Trie Tree 字典树
- POJ 3630 Phone List
- poj--3630--Phone List(字典树+前缀判断)
- POJ——3630 Phone List
- HDU 1671 Phone List && POJ 3630 Phone List
- poj 3630 Phone List (字典树)
- POJ 3630-Phone List【比较许多字符中有没有一个是另一个的前缀,简单方法】
- poj 3630 Phone List 字典树