![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
考研机试
qirmcmww
1%与100%
展开
-
大整数
BigNumber存储struct bign{ int d[1000]; int len; bign(){ memset(d, 0, sizeof(d)); len = 0; }};赋值bign change(char str[]){ bign a; a.len = strlen(str); for(int i=0;i<a.len;i++){ ...原创 2019-01-31 21:16:39 · 94 阅读 · 0 评论 -
Huffman
先从简单的Huffman树讲起我们选用优先队列构造小顶堆,每次从堆中提取最小元素以一个例子作为引子:搬水果ps:priority_queue<int> q;直接得到的是大顶堆,每次输出的是队列中最大的元素我们需要将其改为priority_queue<int,vector<int>,greater<int> > q;才能原创 2019-03-05 11:27:34 · 88 阅读 · 0 评论 -
字符串与数字的处理
这是由开创性意义的一篇博客~hh 它可以极大大缩短我的上机所用时间那就是atof,atoi话不多说,看下例://atoi,atof妙用#include<iostream>#include<string>#include<fstream>#include<stdlib.h>using namespace std;int main(){...原创 2019-03-03 23:23:14 · 92 阅读 · 0 评论 -
最小生成树
Prim算法思想比较简单,只要在集合中选择距离给定点最短即可。const int MAXV = 1000;//最大顶点数const int INF = 0x3fffffff;//无穷大//邻接矩阵int n,G[MAXV][MAXV];//n为顶点数int d[MAXV];//顶点与集合S之间的距离bool vis[MAXV] = {false};intprim(){//默认0...原创 2019-02-14 12:12:46 · 112 阅读 · 0 评论 -
质因子分解
质因子分解指的是将一个正整数n写成一个或多个质数的乘积形式。PAT A 1059#include<stdio.h>struct factor{ int cnt;//个数 int x;//质因子}fac[10];const int maxn = 100001;//表长int prime[maxn],pNum = 0;//prime数组存放所有素数,pN...原创 2019-01-31 22:02:36 · 247 阅读 · 0 评论 -
最大公约数最小公倍数
最大公约数 最小公倍数不给出证明最大公约数欧几里得算法:gcd(a,b)=gcd(b,a%b)int gcd(int a,int b){(a&amp;amp;gt;b) if(b==0) return a; else return gcd(b,a%b);}最小公倍数得到a和b的最大公约数d之后,最小公倍数是ab/d由于ab在实际运算中可能溢出,所以准确写法为:a/d*b...原创 2019-01-29 16:05:39 · 169 阅读 · 0 评论 -
素数
素数判断素数判断到n\sqrt {n}n即可。bool isPrime(int n){ if(n&amp;lt;=1) return false; for(int i=2;i*i&amp;lt;=n;i++){ if(n%i==0){ return false; } } return true;}获取素数表埃氏筛选法----从2开始筛选掉合数cons...原创 2019-01-29 18:18:36 · 97 阅读 · 0 评论 -
并查集
并查集双亲法表示各棵树(所有集合的元素个数N):int Tree[N];Tree[i]表示结点i的双亲结点若Tree[i]为-1 则表示该节点不存在双亲结点,即为根节点。查找结点x所在树的根节点–附带路径压缩:int findRoot(int x){ if(Tree[x]==-1) return x; else{ int tmp = findRoot(Tree[x]); ...原创 2019-02-06 20:47:02 · 164 阅读 · 0 评论 -
拓扑排序
如果一个有向图的任意顶点都无法通过一些有向边回到自身,那么称这个有向图为有向无环图(Directed Acyclic Graph,DAG)。拓扑排序一个很重要的应用就是判断一个给定图是否是有向无环图。vector&lt;int&gt; G[MAXV];//邻接表int n,m,inDegree[MAXV];//顶点数,入度//拓扑排序bool topologicalSort(){ in...原创 2019-02-15 19:03:43 · 94 阅读 · 0 评论 -
动态规划
最大连续子序列和状态转移方程:dp[i] = max{A[i], dp[i-1]+A[i]}最长不下降子序列状态转移方程dp[i] = max{1,dp[j]+1} (j=1,2,…,i-1&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;A[j]&amp;amp;amp;amp;amp;amp;amp;amp;amp;a原创 2019-02-15 21:46:30 · 156 阅读 · 0 评论 -
最短路径
Dijkstra时间复杂度 O(v2v^2v2)最短距离:领接矩阵://邻接矩阵const int MAXV = 1000;//最大顶点数const int INF = 0x3fffffff;//INF为无穷大int n,G[MAXV][MAXV];//n为顶点数,maxv为最大顶点数int d[MAXV];//起点到各点的最短路径长度bool vis[MAXV] = {fal...原创 2019-02-11 11:31:16 · 154 阅读 · 0 评论 -
序列重构树
以一个问题作为引子:给定一棵二叉树的先序遍历序列和中序遍历序列,重建这棵二叉树。先序序列提供树的根节点按该节点在中序序列中的位置将序列分为左右两个子序列,可以利用左右子序列长度在先序序列中找到左右子树,递归构建这棵二叉树。代码如下:ps:静态建树美滋滋//先序中序得后序#include&amp;amp;amp;lt;iostream&amp;amp;amp;gt;#include&amp;amp;amp;lt;string&am原创 2019-03-07 11:27:54 · 181 阅读 · 0 评论