算法
lyl00ling
永远不要后退,不然退到最后无路可退,坚持自己的初衷,fighting!!!
展开
-
ZOJ1649-拯救天使
题意就是说“@”被困住了,要求“r”去拯救,“x”表示可以走,但是要2个单位时间,而“.”表示可以走,只要1个单位时间,“#”表示不能走。求能否到达,输出最短的单位时间,不能就按题意输出。 题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1649 思路:这个就是一个迷宫问题,通过BFS+优先队列来解。 代码:原创 2015-06-09 20:42:08 · 898 阅读 · 0 评论 -
字典树模板(动态)
typedef struct node { int num;//表示节点分支。即个数 struct node *br[26];//分支 预先 } void Tree_Insert(char str[]) { Node *t,*s = head;//用于中间的新建节点,s用于对头指针开始操作 int len = strl原创 2015-06-09 20:46:31 · 477 阅读 · 0 评论 -
字典树模板--静态 ----HDU 1251
HDU 1251 http://acm.hdu.edu.cn/showproblem.php?pid=1251 题意:给你一些单词,再给你一些前缀,输出对应的给定的单词是这些前缀的个数。 思路:把这些单词建立一个字典树,走过一个节点对应的计数器就垒加,再分别找前缀发现没有走过的节点就直接输出0,如果没输出0就输出对应节点的记数变量就OK了。 #include #include s原创 2015-06-12 15:46:16 · 417 阅读 · 0 评论 -
poj3630
题目链接:http://poj.org/problem?id=3630 题意:在给出的相应数量的字符串中,如果存在一个字符串是另一个字符串的前缀,就输出“NO“否则输出”YES“。 解题思路:分两种情况:如果字符串A是字符串B的前缀,1是A在B的前面,2是A在B的后面。我在这里只用了trie树的插入, 同时将相应字符串的下标存入trie树中,便于判断,第一次将所有的字符串插入,是处理第1原创 2015-06-12 15:53:18 · 1086 阅读 · 0 评论 -
poj2503
题目链接:http://poj.org/problem?id=2503 题意:就像翻译一样,输入一个单词,输出它所对应的一个单词。 解题思路:首先将后面待查询的单词构建成一棵trie树,在结构体中增加一个保存前面单词的一个字符串数组,在插入的时候,把要查询那个单词对应的单词存入数组中,以便在查询的时候,如果查询到就打印出对应的单词,否则打印出”eh”; 代码:#include #includ原创 2015-06-12 15:58:56 · 501 阅读 · 0 评论 -
KNP-poj3450
题目链接:http://poj.org/problem?id=3450 代码:#include #include char p[4010][4010]; int main() { int m; while(scanf("%d",&m)&&m!=0) { for(int j=0;j<m;j++) scanf("%s",p[j]);原创 2015-06-12 16:20:46 · 533 阅读 · 0 评论