算法
saxxxxy
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
ACM学习-匈牙利匹配
匈牙利匹配先说一种简单情况,多了也是一样,比如A,B,C找对象,一开始A问B有没有对象,B说没有,OK,A告诉B以后你的对象是我,如果C也开始在周围(相连的节点)找对象,假如找到B,发现B已经有对象,就问B你周围有人单身吗,B发现A单身,就告诉A以后你的对象是我,否则再去询问A周围有没有人单身,依次类推下去,一旦找到类似A这样的单身B必须忍痛割爱承认以后他的对象是C。总结起来是这样的,一旦有节点找原创 2015-08-29 10:42:35 · 804 阅读 · 0 评论 -
ACM学习-动态规划-背包问题
// ACM学习-动态规划-背包问题.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#includeusing namespace std;int num, max_weight, max_volume;int v[6], w[6], c[6], t[6];int f[6][501][101];int s[6][5原创 2015-10-02 14:23:48 · 481 阅读 · 0 评论 -
2017华为软件精英挑战赛-我们组的解法
华为软件精英,启发式搜索,遗传原创 2017-06-03 13:00:00 · 1406 阅读 · 0 评论 -
kmp算法学习
kmp算法c++原创 2015-07-21 17:27:38 · 572 阅读 · 0 评论 -
平衡二叉树java实现
平衡二叉树相对于普通的二叉搜索树它的特点是左右孩子的高度不能超过1,一个节点的高度=max(左孩子的高度,右孩子的高度)+1。一般来说有不平衡有四种情况‘,假设当前节点叫node,左孩子叫nodeLeft,左孩子的左孩子叫nodeLeftLeft,左孩子的右孩子nodeLeftRight,相应右边有,nodeRight, nodeRightRight, nodeRightL原创 2017-12-11 00:17:06 · 1082 阅读 · 0 评论 -
回文串的处理
回文串要添加一些辅助字符#,就是在字符串之间添加#这个辅助字符,目前这种做法主要的一个优化是 比如asbsa这个字符串。如果左边的s的回文序列求出来了,右边的s可以根据左边的s来求int p(char*str, int n) {if (n return n;}int newN = 2 * n + 1;char*newstr = new char[newN];for原创 2017-12-12 20:43:38 · 411 阅读 · 0 评论 -
Morris先序遍历实现空间复杂度为O(1)
先序的遍历这里的实现是根,左,右。从根出发如果其左孩子不为空 从左孩子出发,一直往右边走(迭代获取其右孩子),如果其右孩子能走到尾部,即n=n->right经过若干次之后n为空 说明当前孩子没有访问过,否则认为当前孩子已经被访问过,则把当前节点设置为当前节点的右孩子。如果左孩子为空 则返回到当前节点的上一个节点原创 2018-01-12 10:02:23 · 463 阅读 · 0 评论 -
B树和B+树的总结
一个B树上的节点,最多包含(2m-1)个插入的数据,这些数据可以构成2m个区间,所以个节点最多2m个孩子,也可以没有孩子,没有孩子的节点为叶子节点。插入1.插入一个数据key2.如果目前的节点是叶子节点,则根据关键字大小直接插入到关键字列表里面,如果碰到某个节点关键字的数量等于2m-1,则分裂节点3.如果目前的节点是内部节点,则根据关键字大小找到适合存放当前关键字的孩子节点,进原创 2017-12-10 11:09:57 · 384 阅读 · 0 评论 -
ACM学习-图双连通子图
// ACM学习-割点和桥.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include#include#include#includeusing namespace std;const int v = 13;int edge[v][v] = {{ 0, 1, 1, 0, 0, 1, 0, 0, 0, 0原创 2015-08-25 11:25:48 · 774 阅读 · 0 评论 -
ACM学习-割点和桥
// ACM学习-割点和桥.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#includeusing namespace std;const int v = 13;int edge[v][v] = {{0,1,1,0,0,1,0,0,0,0,0,1,0},{1,0,1,1,0,0,0,1,0,0,0,0,1},原创 2015-08-24 22:13:43 · 970 阅读 · 0 评论 -
乘法通过查表实现
本文主要通过小学学的99乘法表实现// 乘法原始实现.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include#include#includeusing namespace std;int array_result[10][10]={{0,0,0,0,0,0,0,0,0,0},{0,1,2,3,4,5原创 2015-08-04 15:12:25 · 719 阅读 · 0 评论 -
2015-8-18数据结构-分冶-整数划分问题
#include "stdafx.h"#include#includeusing namespace std;//把n划分为若干等份,满足:最大加数int cal_unit_count(int n,int m){if(mreturn 0;}if(m==1||n==1){return 1;}else if(m>n){return cal_unit_原创 2015-08-18 11:31:27 · 437 阅读 · 0 评论 -
2015-8-18数据结构-动态规划-矩阵乘法次数最少
数据结构-动态规划-矩阵乘法次数最少#include "stdafx.h"#include#includeusing namespace std; void MatrixChain(int p[], int n,int m[][6],int s[][6]){ int i,j,r,k,t; for(int i=0;i m[i][i]=0;原创 2015-08-18 18:35:58 · 1246 阅读 · 0 评论 -
2015-8-19数据结构学习-哈夫曼树
// 哈夫曼树.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include#define N 6#define M 2*N-1#define EPS 1e-5#define random(x) (rand()%x)using namespace std;typedef char datatype;typ原创 2015-08-19 17:27:25 · 439 阅读 · 0 评论 -
ACM学习-破坏行动-最大网络流
// ACM学习-破坏行动-最大网络流.cpp : 定义控制台应用程序的入口点。//#define _CRT_SECURE_NO_WARNINGS #include "stdafx.h"#include#include#include#includeusing namespace std;long n, m, s, t;//记录节点数,管道数,A原创 2015-09-30 21:48:06 · 538 阅读 · 0 评论 -
ACM学习-最大网络流
// ACM学习-最大网络流.cpp : 定义控制台应用程序的入口点。//总体是通过一次一次迭代,每次迭代,首先建立一个空队列,再把//源点加进去,从源点出发找到由它出发的边组成的链表的头,遍历该链表//如果链表中的边的容量没有到达上限且目的点没有被访问过,我们就把它加入//队列中,且记下该点前缀,依次从队列中取元素直到队列为空,或者到达终点#include "stdafx.h原创 2015-09-19 12:30:52 · 742 阅读 · 0 评论 -
ACM学习-自己写割点
// ACM学习-自己写割点.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#includeusing namespace std;const int v = 4;int edge[v][v] = {{ 0, 1, 1, 0 },{ 0, 0, 0, 1},{ 1, 0, 0, 0 }, { 1, 1, 0, 0}原创 2015-09-19 12:28:34 · 437 阅读 · 0 评论 -
ACM学习-进化树问题
// ACM学习-进化树问题.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include#includeusing namespace std;long M[100][100];//记录树的差异程度表long sum;//记录树的节点个数和规模int _tmain(int argc, _TCHAR*原创 2015-09-19 12:27:07 · 399 阅读 · 0 评论 -
各种排序算法的代码
快速排序void quitSort(int*a, int l, int h) {if (l >= h) {return;}int low = l;int high = h;int key = a[l];while (low while (high > low&&a[high]>key) {--high;}if (low == high) {原创 2017-12-03 23:41:16 · 373 阅读 · 0 评论
分享