算法
_vito_
这个作者很懒,什么都没留下…
展开
-
Hiho一下第一周 ——O(n) 求 最长回文子串
转自:http://www.cnblogs.com/wuyiqi/archive/2012/06/25/2561063.html转载 2014-07-11 17:18:06 · 365 阅读 · 0 评论 -
hihoCoder挑战赛A题——顺子
hihoCoder挑战赛A题——顺子题目链接:http://hihocoder.com/problemset/problem/1177注意点1、思路:输入四个数字分成下面几种情况: 1)有重复->不可能顺子; 2)四个数连续->有可能构成顺子(再细分:(1)1234(A看成是1)只有下一张是5才能构成顺子,所以有4种可能(暂时不考虑花色)(2)其他都有8种可能); 3)有一个跳只->可能构成顺原创 2015-06-15 22:39:59 · 620 阅读 · 0 评论 -
最大公约数和最小公倍数
最大公约数和最小公倍数辗转相除法证明(欧几里得算法): http://www.cnblogs.com/zwffff/archive/2010/08/25/1808178.html 更相减损法: http://blog.163.com/xiaoting_hu/blog/static/5046477220136491243567/ Stein算法: http://baike.baidu.com转载 2015-06-15 23:10:57 · 332 阅读 · 0 评论 -
hiho第七周——完全背包(动态规划)
hiho第七周——完全背包(动态规划)题目链接:http://hihocoder.com/problemset/problem/1043注意点1、和第六周的01背包相比较,状态公式不同 01背包:best(i,x) = max{best(i-1,x),best(i-1,x-need(i))+value(i)} 完全背包:best(i,x) = max{best(i-1,x),best(i,x-n原创 2015-06-14 10:46:19 · 423 阅读 · 0 评论 -
hihoCoder挑战赛B题——计数
hihoCoder挑战赛B题——计数题目链接:http://hihocoder.com/problemset/problem/1178注意点1、在[L,R]之间的i可能被几种x xor n*x的方式被表示,所以动态数组(bool类型)来保存是否已经被计算过;用set更好 2、注意变量的范围选取合适的变量类型;比如这里R最大为10的7次方,最多24位,如果N也是24位,计算int temp = i^原创 2015-06-15 13:44:57 · 413 阅读 · 0 评论 -
hiho第四十九周——欧拉路·一
hiho第四十九周——欧拉路·一题目链接:http://hihocoder.com/contest/hiho49/problem/1 欧拉路证明:http://class.htu.cn/lisanshuxue/neirong/7_4.htm注意点1、给定无孤立结点图G,若存在一条路,经过图中每边一次且仅一次,该条路称为欧拉路。2、欧拉路判定条件:(1)一个无向图存在欧拉路当且仅当该图是连通的且有且原创 2015-06-12 20:43:14 · 411 阅读 · 0 评论 -
hiho第六周——01背包(动态规划)
hiho第六周——01背包(动态规划)题目链接:http://hihocoder.com/problemset/problem/1038注意点1、观察公式,减少空间复杂度为O(M)。可执行代码#include<iostream>#include<fstream>using namespace std;int main(){ fstream cin("input.txt");原创 2015-06-13 08:59:23 · 331 阅读 · 0 评论 -
hiho第五十周——欧拉路·二(Fleury算法求欧拉路径)
hiho第五十周——欧拉路·二(Fleury算法求欧拉路径)题目链接:http://hihocoder.com/contest/hiho50/problem/1注意点1、欧拉路二这题是可能有一样的骨牌的(罚了好多时。。。)2、因为DFS本身就是一个入栈出栈的过程,所以我们直接利用DFS的性质来实现栈,其伪代码如下:DFS(u): While (u存在未被删除的边e(u,v))原创 2015-06-13 22:44:32 · 747 阅读 · 0 评论 -
hiho第五周——数字三角形(动态规划)
hiho第五周——数字三角形(动态规划)题目链接:http://hihocoder.com/problemset/problem/1037注意点1、可以考虑把二维动态数组改成只用一个长度为N+1的一维动态数组,减少空间复杂度。可执行代码#include <iostream>#include <fstream>using namespace std;int main(){ //ifst原创 2015-06-12 20:00:50 · 461 阅读 · 0 评论 -
hiho第三周——字符串匹配KMP算法
hiho第三周——字符串匹配KMP算法题目链接:http://hihocoder.com/problemset/problem/1015 资料来源于网络:http://kb.cnblogs.com/page/176818/注意点1、KMP算法的核心思想是next数组,保留匹配的信息,减少计算量2、我这里主要应用start标记字符串s中用于模板pattern匹配的第一个字符的位置,match_num原创 2015-06-11 15:12:05 · 498 阅读 · 0 评论 -
hiho第二周——Trie树
hiho第二周——Trie树题目链接:http://hihocoder.com/contest/hiho2/problem/1注意点结构体的构造函数 建树:注意先给子节点分配好内存,在移动cur指针 查询:注意边界情况,cur可能在循环完成后指向空节点可执行代码#include <iostream>#include <fstream>#include <string>using names原创 2015-06-09 22:50:00 · 403 阅读 · 0 评论 -
hiho第一周——最长回文子串
hiho第一周——最长回文子串题目链接:http://hihocoder.com/contest/hiho1/problem/1 资料来源于网络:http://www.felix021.com/blog/read.php?2040关键点Manacher算法的关键点就在这里了:如果max_right> i,那么P[i] >= MIN(P[2 * ind - i], max_right- i)上图方便原创 2015-06-09 20:07:27 · 361 阅读 · 0 评论 -
hiho第十周——后序遍历
hiho第十周——后序遍历题目链接:http://hihocoder.com/problemset/problem/1049注意点string a = "1";string b = a.substr(0,0);string c = a.substr(0,1);string d = a.substr(1,0);string e = a.substr(1,1);运行不会出错,结果是c=“1”其原创 2015-06-17 15:54:04 · 335 阅读 · 0 评论 -
hihoCoder第八周——状态压缩·一
hihoCoder第八周——状态压缩·一题目链接:http://hihocoder.com/problemset/problem/1044注意点动态规划,状态压缩 1、best[i][j]表示在j决策的情况下,计算到第i个座位时可以清理的最多垃圾数。2、解释下j决策: 因为考虑到计算i+1行的数据时(即清扫到i+1个座位时各种决策下的最大清理垃圾数),需要考虑如果清扫该座位的垃圾原创 2015-06-16 23:14:49 · 405 阅读 · 0 评论 -
hihoCoder挑战赛C题——永恒游戏
hihoCoder挑战赛C题——永恒游戏题目链接:http://hihocoder.com/problemset/problem/1179注意点有一个定理保证,对于一个固定的初始局面,不论怎么操作,要么可以无限操作下去,要么在相同步数之后停在相同的局面上。所以只需要模拟100000次即可知道本题答案。定理的证明可以在以下论文中找到 http://www.cs.elte.hu/~lovasz/more原创 2015-06-15 23:14:53 · 562 阅读 · 0 评论