计算机算法
Gummary
这个作者很懒,什么都没留下…
展开
-
C++_递归排列产生器
含有n个元素的集合,共有n!中不同的排列。 先取出一个元素,然后将剩下n-1个元素排列,获得一种情况,然后取出另一个元素,将剩下n-1个元素排列,获得第二种情况,然后继续取出元素,直至第n个,而剩下的n-1个排列又可以产生n-1中情况,此时便完成了一次递归,也就是完成n-1的排列问题也就解决了n个元素的排列问题代码#include <iostream>using namespace std;voi原创 2015-09-10 20:55:56 · 683 阅读 · 0 评论 -
C++_(矩阵)快速幂
#include <iostream>#include <cstdio>using namespace std;const int MOD = 1000;int POW(long long &num);int times;long long N;int main(){ scanf("%d", ×); while(times--) { sca原创 2016-05-14 20:35:59 · 2367 阅读 · 0 评论 -
C++_FatMouse' Trade(贪心)
DescriptionFatMouse prepared M pounds of cat food, ready to trade with the cats guarding the warehouse containing his favorite food, JavaBean. The warehouse has N rooms. The i-th room contains J[i] p原创 2016-05-14 20:25:04 · 786 阅读 · 0 评论 -
C++_DFS求连通度
DescriptionBenny has a spacious farm land to irrigate. The farm land is a rectangle, and is divided into a lot of samll squares. Water pipes are placed in these squares. Different square has a differen原创 2016-05-10 22:04:34 · 1178 阅读 · 0 评论 -
C++_KMP算法的实现
#include <iostream>using namespace std;int* getNext(string b){ int len = b.length(); int *next = new int[len+1]; next[0] = next[1] = 0; int j = 0; //j始终表示长度为i-1的字符串的next值,即前一个原创 2015-10-20 22:38:32 · 557 阅读 · 0 评论 -
C++_简单的链表栈
类中包含一个指针指向栈顶的元素,定义一个结构体,包括值和一个指向他上一个元素的指针,#include <iostream>#define NULL 0using namespace std;class MyStack{private: struct node { int s; node *link; }; node *top;p原创 2015-09-12 19:15:20 · 1980 阅读 · 0 评论 -
C++_子集生成算法汇总
增量构造算法每次递归选取一个值放入到集合中,每次递归也输出一遍 递归结束就是无法向集合中添加元素时#include <iostream>using namespace std;//cur用于确定子集的大小void print_subset(int *A,int n,int cur){ if(cur==0) cout << "kong"; for(int i = 0;i<cu原创 2015-09-12 10:16:32 · 6555 阅读 · 1 评论 -
C++_递归习题汇总
霍纳规则霍纳规则是一种使用最少数目的乘法在点x0处计算多项式的方法。如果一个多项式为A(x)=anxn+an-1xn-1+……+a1x+a0,则霍纳规则为: A(x0)=(…(anx0+an-1)x0+…+a1)x0+a0由公式可以看出括号内的部分即为递归的过程,最后递归的出口应为a0#include <iostream>using namespace std;int Horner(int *a,原创 2015-09-11 20:00:51 · 3859 阅读 · 0 评论 -
C++_递归实现汉诺塔
A为存放盘子的塔,B为目标塔,C为辅助塔 算法分为三步 一、将A上n-1个盘子全部放到C塔上 二、将A上剩下的一个盘子放到B塔上 三、将C塔上的盘子全部放到B塔上注:不需要考虑如何移动n-1个盘子递归过程: 首先,将A上n-1个盘子放到C上,然后将A上剩下的一个盘子放到B上,然后可以看成A为辅助塔,B为目标塔,C为放盘子的(B中有一个最大的盘子,但任何盘子都能放到上面,所以可以看做为空),原创 2015-09-10 20:27:24 · 23211 阅读 · 2 评论 -
C++_BFS求最短路径
DescriptionAngel was caught by the MOLIGPY! He was put in prison by Moligpy. The prison is described as a N * M (N, M <= 200) matrix. There are WALLs, ROADs, and GUARDs in the prison.Angel’s friends wa原创 2016-05-09 21:39:37 · 3082 阅读 · 0 评论