- 博客(6)
- 收藏
- 关注
原创 kmp
void makeNext(const char P[],int next[]){ int q,k; int m = strlen(P); next[0] = 0; for (q = 1,k = 0; q { while(k > 0 && P[q] != P[k]) k = next[k-1];
2016-09-02 08:23:52
266
原创 Dijkstra
老是感觉自己有一种心有余而力不足的感觉,一个简单的Dijkstra都花了我一天的时间去学习,有好多时候都是明明看的懂解释,却没有办法实现,总地有参照才可以写出来,是不是 因为做题太少,对题解有依赖,都无从得知。写博客也只是在借鉴别人,把自己所做过的题 ,所有的思路都记录下来,在参加比赛之前 有一个复习有一个回顾,也可能是无用功吧,不管是会不会有效吧,做了总比没做强,希望借此改变现状 。Di
2016-08-23 11:39:20
320
转载 博弈知识总结
参考博客:http://blog.csdn.net/acm_cxlove/article/details/7854530有一种很有意思的游戏,就是有物体若干堆,可以是火柴棍或是围棋子等等均可。两个人轮流从堆中取物体若干,规定最后取光物体者取胜。这是我国民间很古老的一个游戏,别看这游戏极其简单,却蕴含着深刻的数学原理。下面我们来分析一下要如何才能够取胜。(一)巴什博奕
2016-08-22 20:29:41
316
原创 kruskal模板及例题(并查集)
int find(int x)//找寻不会形成环的边,如果一条边的两个顶点有相同的父节点,则会出现环{ return father[x]==x?father[x]:father[x]=find(father[x]);// 如图,若AB被选中,BC也被选中,扫到C
2016-08-22 20:12:02
634
原创 匈牙利算法
代码如下int match[maxn],n;//match表示谁与谁匹配bool used[maxn],link[maxn][maxn];//used表示是否尝试给变过他的属性,及在find中是否扫过他,如果已经扫过了说明他已经用了。link表示关系。***used每次都要更新int find(int a){ for(int i=0;i if(link[a
2016-08-22 17:00:36
560
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人