摘要:
【原创】 今天我们来聊聊有向图中环的判断,在数据结构中我们知道,通过拓扑排序可以判断有向图中是否存在环,对于有向图的存储我们采用邻接表的形势,这里为了简化链表的操作,我们省略了链表,避免了指针的麻烦,直接采用了c++中的vector来模拟链表,操作更加的方便;具体详细的使用,建议百度一下,这里不多说 阅读全文
摘要:
原创 今天来说说最小生成树问题,我们知道最小生成树有两种求法,一种是prim算法,另一种是kruskal算法,关于两种算法的定义以及证明,请查看相关资料,这里不多说,理解起来也相当容易,我们来看一个问题描述: 很明显,这就是求最小生成树,并计算其最小权值和的问题,我们不妨将边定义成结构体,如下代码: 阅读全文
摘要:
【原创】 利用并查集解决这样一个问题, 这个问题可以利用一个并查集合并来解决,在数组Tree[]中Tree[x]保存了x号节点的父亲节点,那么通过这样的若Tree[x]中的值为-1,则说明x为根节点,其实这个问题类似的可以看成查找连通分量,也就是说一个集合就是一个联通分量;看代码: 阅读全文
摘要:
【原创】 最大子矩阵,也就是在一个矩阵中找一个子矩阵,使其和最大,至于所采用的思想便是求数组的最大子序列,比如1,2,-1,-1,3,这个数组的最大和就是本身为4;再比如1,2,-1,-3,4,这个数组额度最大子序列为4,即最后一个数,那么在矩阵中通过将各行相加,并找出相加后的数组的最大子序列和,便 阅读全文
摘要:
【原创】 使用C++STL中的vector, 另外一些操作: v.clear();清空; v.erase(v.begin()+I,v.begin()+i+1);这里表示删除了第I个元素,可以连续删除多个,要弄清楚这里面的两个参数即可;这里的i可以从0开始,即是vector的下标 可以利用vector 阅读全文
摘要:
【原创】 java中的进制BigInteger十分的强大,而且好用,他可以表示任意大的整数,同时还可以进行进制转换,十分的方便, 代码示例: 1 package com.jiajia.demo_1; 2 import java.math.BigInteger;//导入该包 3 public clas 阅读全文
摘要:
【原创】 代码思想:利用一个数组记录字母出现的次数, 阅读全文
摘要:
素数这个概念不用强调了吧;直接上代码吧 阅读全文
摘要:
【原创】 两个数a,b,求二者的最大公约数,传统朴素的想法大家肯定都懂,不多说,这里有一种算法叫欧几里得算法,思想:若a,b同时为0,那么最大公约数不存在,若,一个为0,那么最大公约数为另外一个不为0 的数,若a,b都不为0,则使新的a=b,新的b =a%b,然后重复使得b=0,此时的a为所求,至于 阅读全文
摘要:
原创: 之前有发一篇进制转换的文章,转换思想在里面,这里不再重复,详情请查看:http://www.cnblogs.com/numen-fan/p/6495009.html 代码: //任何进制的转换 void test3(){ //输入格式,a,n,b;将a进制的n转为b; int a,b; ch 阅读全文