• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
sheepsheep
博客园 | 首页 | 新随笔 | 新文章 | 联系 | 订阅 订阅 | 管理

04 2015 档案

 
hihocoder(1050) 树中最长路径
摘要:树的最长路径,即求一颗树的直径问题,dfs和bfs都可一解决,但一直觉得dfs的比较绕,不好理解。于是写了bfs的方法,其中0节点当作哨兵,每次从队列中取出0节点的时候,就知道一轮bfs结束,可以把深度加一。bfs的思路很简单:1.随便找一个节点,以该节点为起点进行一次bfs,得出的最后一个顶点,一... 阅读全文
posted @ 2015-04-13 18:42 sheepsheep 阅读(742) 评论(0) 推荐(0)
hihocoder(1049) 后序遍历
摘要:常见题了,分治思想,有一个结论划分后,将序列划分为更小的子集,继续应用该结论。图简单,直接递归了,之前看过非递归的写法。。。忘了Impl: 1 #include 2 #include 3 4 using namespace std; 5 6 void postOrder(string str... 阅读全文
posted @ 2015-04-13 11:27 sheepsheep 阅读(194) 评论(0) 推荐(0)
hihocoder(1038,1043) 01背包与完全背包
摘要:动态规划是一直感觉比较模糊的东西,虽然大致上知道是什么一回事,但是离灵活应用还差得远,但貌似比赛中动态规划的题出的特别多,这两个经典问题其实只能算是一个学习动态规划很好的模型。不过万事开头难,关键还是得静下心来多练习。01背包的状态转移式:f(i, j) = max{f(i-1, j), f(i-1... 阅读全文
posted @ 2015-04-13 10:39 sheepsheep 阅读(142) 评论(0) 推荐(0)
hihocoder(1109) 堆优化的Prim算法
摘要:这题思路也很简单,就是用一个最大堆堆去维护Prim算法中的Low数组,把刷新Low数组的操作,变成了刷新堆的操作,由于堆的插入操作位logn,查询时间为常数,因此在边稀疏的情况下,其复杂度与Kruscal接近。这题刚开始老是WA,想了很久,不知道错在哪里,后来发现时因此不能直接去堆中的最小路径,因为... 阅读全文
posted @ 2015-04-12 23:02 sheepsheep 阅读(1319) 评论(0) 推荐(0)
hihocoder(1098) 最小生成树Kruskal
摘要:Kruskal比Prim简单的多,对已知边排序,然后从排序的边中跳出N-1条最短的来就可以了,当然,如果在挑的过程中出现环,就丢掉继续找,就只这么直接。如何判定有没有环?很简单,用并查集就可以。比如a-b,b-c,c-a构成了环,那么a-b合并,b-c合并后,如果紧接着最小边是c-a,那么并查集的f... 阅读全文
posted @ 2015-04-12 10:19 sheepsheep 阅读(182) 评论(0) 推荐(0)
hihocoder(1097) 最小生成树Prim
摘要:图论一直是自己算法中最最最柔弱的部分,主要是,当年数据结构的课程,后面就去打酱油了,后来时间又都花在了电赛上,平时用的相关部又少,这一部分就更弱了,总是懒得捡起来,但是现在可是没退路了,开始好好复习这一部分。Prim算法是求解无向图最小生成树的经典算法,和Dijkstra算法类似,但是Prim算法每... 阅读全文
posted @ 2015-04-11 17:04 sheepsheep 阅读(250) 评论(0) 推荐(0)
hihocoder(1032) 最长回文子串
摘要:经典题,没什么好说的,直接上manacher,时间复杂度O(n),空间复杂度O(n),因为需要额外申请一个数组存储每个位置的子回文长度。算法精髓:1.把无论奇,偶长度字符串转换为奇数个。2.利用已经得到的最长回文的右边界来减少重复计算的次数,如果右边界mx>i,则p[i] = min(mx-i, p... 阅读全文
posted @ 2015-04-11 09:30 sheepsheep 阅读(145) 评论(0) 推荐(0)
hihocoder(1014) Trie树
摘要:Trie树又称单词查找树,多应用与搜索引擎或者输入法的词频统计,利用字符串的公共前缀加快查找速度。第一次接触,不过代码还是比较好写的。Impl: 1 #include 2 #include 3 #include 4 5 struct TrieTree 6 { 7 int count;... 阅读全文
posted @ 2015-04-11 08:30 sheepsheep 阅读(145) 评论(0) 推荐(0)
hihocoder(1015) KMP
摘要:算法核心,Next数组(模式串的最长前缀后缀表)。KMP的思想就是,当匹配不正确时,模式串向后移动的距离为:已匹配的字符串个数 - next[j]而Next数组的算法起始也是递归的字符串匹配过程。Impl: 1 //Next数组计算 2 void CalNext(const char* p, int... 阅读全文
posted @ 2015-04-10 09:22 sheepsheep 阅读(123) 评论(0) 推荐(0)
Segmentation fault, reboot.........
只有注册用户登录后才能阅读该文。
posted @ 2015-04-09 20:31 sheepsheep 阅读(6) 评论(0) 推荐(0)
 

公告


博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3