zoukankan
html css js c++ java
Codeforces 514 D R2D2 and Droid Army(Trie树)
[题目链接](http://codeforces.com/problemset/problem/514/D) 大意是判断所给字符串组中是否存在与查询串仅一字符之差的字符串。 关于字符串查询的题,可以用[字典树(Trie树)](http://www.cnblogs.com/orangee/p/8912971.html)来解,第一次接触,做个小记。在查询时按题目要求进行查询。 代码: ```C++ #define _CRT_SECURE_NO_DEPRECATE #include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std; typedef long long ll; typedef pair
P; typedef map
M; typedef vector
V; typedef queue
Q; const int maxn = 6 * 100000 + 10; const int N = 3; struct trie { trie* next[N]; int count; }; typedef trie* link; link create() { link p = new trie; p->count = 0; for (int i = 0; i < N; ++i) p->next[i] = NULL; return p; } void insert(char* s, link root) { char* p = s; link node = root; while (*p) { if (node->next[*p - 'a']==NULL) node->next[*p - 'a'] = create(); node = node->next[*p - 'a']; ++p; } node->count++; return; } bool query(char* s, link pos,int cnt) { if (*s == ' ') { if (cnt == 1 && pos->count) return true; else return false; } for (int i = 0; i < N; ++i) { if (i != *s - 'a' && cnt==0 && pos->next[i]) { if (query(s + 1, pos->next[i], 1)) return true; } if (i == *s - 'a' && pos->next[i]) { if (query(s + 1, pos->next[i], cnt)) return true; } } return false; } char s[maxn]; int main() { int n,m,k,i,j; link root=create(); cin >> n >> m; for (i = 0; i < n; ++i) { scanf("%s", s); insert(s, root); } for (i = 0; i < m; ++i) { scanf("%s", s); if (query(s, root, 0)) cout << "YES "; else cout << "NO "; } return 0; } ```
查看全文
相关阅读:
客户端技术的一点思考(数据存储用SQLite, XMPP通讯用Gloox, Web交互用LibCurl, 数据打包用Protocol Buffer, socket通讯用boost asio)
自绘LISTVIEW的滚动条(Delphi实现)
文字滚屏控件(SliderPanel)
自动注册服务NET Core扩展IServiceCollection
Three.js基础
Cordova+Asp.net Mvc+GIS
Netty
TagHelper
jQuery、实例大全
React和Angular
原文地址:https://www.cnblogs.com/orangee/p/8913065.html
最新文章
java中Runtime类详细介绍
java计算时间从什么时候开始 为什么从1970年开始 java的时间为什么是一大串数字
java计算时间从什么时候开始 为什么从1970年开始 java的时间为什么是一大串数字...
java计算时间从什么时候开始 为什么从1970年开始 java的时间为什么是一大串数字...
java计算时间从什么时候开始 为什么从1970年开始 java的时间为什么是一大串数字...
Java中线程的操作状态
Java中线程的操作状态
Java中线程的操作状态
radio选择事件 onchange事件 onclick事件
radio被选中,但是重复点击后事件不触发
热门文章
JQuery通过radio,select改变隐藏显示div
jQuery实现复选框的全选、反选、并且根据复选框的<checked属性>控制多个对应div的显示/隐藏
JS中获取页面单选框radio和复选框checkbox中当前选中的值
JS----checked----checked选中和未选中的获取
JQuery 多个checkbox 只选中一个
js中多层复杂并且动态键值JSON的获取方法
TCP/IP协议栈及OSI参考模型详解
Java Socket编程----通信是这样炼成的
如何将Icon转成Bitmap
为什么腾讯总能做出好产品?(在互联网行业,往往仅凭一个关键产品就足以改变整个公司的格局)MSN失败在不以用户体验为中心
Copyright © 2011-2022 走看看