HDU 1671 Phone List
来源:互联网 发布:免费数据采集器 编辑:程序博客网 时间:2024/05/21 08:53
#include <iostream>#include <cstdlib>#include <cstdio>#include <string>#include <cstring>#include <cmath>#include <vector>#include <queue>#include <stack>#include <algorithm>using namespace std;const int maxnode = 10010 * 110;const int sigma_size = 26;struct Trie{ int ch[maxnode][sigma_size]; int val[maxnode]; int sz; void init() { sz = 1; memset(ch[0], 0, sizeof(ch[0])); } int idx (char c) { return c-'0'; } void insert(char *s) { int u = 0, n = strlen(s); for(int i = 0; i < n; i++) { int c = idx(s[i]); if(!ch[u][c]) { memset(ch[sz], 0, sizeof(ch[sz])); val[sz] = 0; ch[u][c] = sz++; } u = ch[u][c]; val[u]++; } } int find(char *s){int u = 0, n = strlen(s);for(int i = 0; i < n; i++){int c = idx(s[i]);if(!ch[u][c]) return 0;u = ch[u][c];}return val[u] == 1;}}; Trie trie;const int maxn = 10100;char str[maxn][110];int n;void read_case(){trie.init();scanf("%d", &n);for(int i = 0; i < n; i++) scanf("%s", str[i]), trie.insert(str[i]);}void solve(){read_case();for(int i = 0; i < n; i++) if(!trie.find(str[i])) { printf("NO\n"); return ; }printf("YES\n");}int main(){int T;scanf("%d", &T);while(T--){solve();}return 0;}
- Phone List 1671hdu
- Hdu-1671 Phone List
- hdu 1671 Phone List
- HDU-1671-Phone List
- hdu 1671 Phone list
- hdu 1671 Phone List
- hdu 1671 Phone List
- HDU 1671 Phone List
- HDU 1671 Phone List
- HDU 1671 Phone List
- hdu 1671 Phone List
- hdu 1671 Phone List
- HDU-1671-Phone List
- Phone List hdu 1671
- hdu 1671 Phone List
- hdu 1671 Phone List
- HDU 1671 Phone List(
- hdu 1671 Phone List
- 802.11n兼容a/b/g问题(Legacy mode,Mixed mode,Greenfield mode)
- [Python]用一行 map,reduce 计算 5!+4!+3!+2!+1!
- poj1458解题报告
- ZOJ3690Choosing number
- 黑马程序员-------JavaIO流
- HDU 1671 Phone List
- 解决 ASP.NET 中 System.OutOfMemoryException 的问题
- 学生类
- 几种开源TCPIP协议概述--LwIP,uIP,TinyTcp和uC/IP
- 5-2 分数类
- nessus5 的种种
- make&Makefile
- Thread和Runnable的区别
- Java 之IO流_1