摘要: 好开心,手动自己按照字典树的思想用c写了一个优化后的trie字典树,就是用链表来代替26个大小的字符数组。完全按照自己按照自己的想法打的,没有参考如何被人的代码。调试了一天,居然最后错在一个小问题上,郁闷啊!!!最后终于调试出来了!!一次提交就ac了!!开心溢于言表啊!!!!!!/*trie树:插入: 插入一段字符串: 每个字符作为树的一层(同一层的节点通过兄弟节点项连),每个节点如果有后继节点的话,就把最大的后继放到其后面。 如果字符串结束,就在该节点处,connt++;然后用一个字符串指针指向实际匹配的字符串的地址。查询: 给定一个字符串,通过字符串... 阅读全文
posted @ 2014-04-06 22:01 keyboard3 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 例题代码是c++,看起来实在不习惯。还是用我的c写舒服。题意:突击队 你有n个部下,每个部下需要完成一项任务。第i个部下需要你话b[i]分钟交代任务然后他会立刻独立地、无间断地执行j[i]分钟后完成任务。你需要选择交代任务的顺序,使得所有任务今早执行完毕(即最后一个执行完的任务尽早结束)。注意,不能同时给两个部下交代任务,但部下们可以同时执行他们各自的任务。#include#include#define max(a,b) (a)>(b)? (a):(b);struct Node{ int b,j;}J[1005];int cmp(const void*a,const void*b)... 阅读全文
posted @ 2014-04-06 11:25 keyboard3 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 最近再开刘汝佳的算法竞赛入门经典,用它来练题。1.1思维的体操题意: 勇者斗恶龙 你的王国立有一条n个头的恶龙,你希望雇一些骑士把它杀死(即砍掉所有头)。村里有m个骑士可以雇佣,一个能力值为x的骑士可以砍掉一个直径不超过x的头,且需要支付x个金币。如何雇佣骑士才能砍掉恶龙的所有头,且需要支付的金币最少?注意,一个骑士只能砍一个头(且不能被雇佣两次)贪心排序:#include#include/*因为用到了sort*/using namespace std;const int maxn=20000+5;int A[maxn],B[maxn];int main(void){ int n,... 阅读全文
posted @ 2014-04-06 10:44 keyboard3 阅读(151) 评论(0) 推荐(0) 编辑