- 博客(23)
- 资源 (3)
- 收藏
- 关注
转载 有11瓶酒,只有一瓶有毒。喝酒之后,三天会死,只有三天时间。请问至少需要多少只老鼠,可以找出9瓶没有毒的酒。
巧妙变换;及可怜的小老鼠分析推荐0收藏今日面试题:巧妙变换输入数组[a1,a2,...,an,b1,b2,...,bn],构造函数,使得输出为,[a1,b1,a2,b2,...,an,bn],注意:方法要是in-place的。======================================可怜的小老鼠分析原题有
2013-10-10 20:39:31
6013
转载 5个海盗分100个金币
5个海盗抢到了100金币,他们决定这分: 1. 抽签决定自己的号码(1,2,3,4,5) 2. 首先,由1号提出分配方案,然后大家5人进行表决,当且仅当超过半数的人同意时,按照他的提案进行分配,否则将被扔入大海喂鲨鱼。 3. 如果1号死后,再由2号提出分配方案,然后大家4人进行表决,当且仅当超过半数的人同意时,按照他的提案进行分配,否则将被扔入大海喂鲨鱼。 4. 以次类推...... 条件: 1.
2013-10-09 21:39:47
4277
原创 一维最接近点对(递归分治)
//一维情况下的最接近点对#includeusing namespace std;#include#include#include#include#define maxint 1000templatevoid Swap(Type &a,Type &b){ Type temp = a; a = b; b = temp;}/*templateType min(Typ
2011-12-17 21:45:25
1080
原创 单源最短路径(贪心算法)
#includeusing namespace std;#include#define maxint 999typedef int* pointer;templatevoid Dijkstra(int n,int v,Type *dist,int *prev,Type **c){//v是源点,dist记录源点到每一个顶点的最短距离,prev记录前一个顶点//c是边距离矩阵 b
2011-12-16 20:23:29
870
原创 动态规划解决流水作业调度(Johnson法则)
#include#includeusing namespace std;#include#include#define random(x) (rand()%x)typedef struct { int key; //以Ai还是Bi作为关键字排序 bool job;//标志是Ai>Bi还是Ai<Bi型,从而分别归在N1或N2集合中 int index;//将它作为第index个作
2011-12-15 20:55:34
3291
原创 递归分治解决快速排序和限行时间选择
#includeusing namespace std;#include#include#define Random(x) (rand()%x)templatevoid Swap(Type &m,Type &n){//交换两个数 Type temp = m; m = n; n = temp;}templateint Partition(Type a[],int p,in
2011-12-14 21:19:20
775
原创 动态规划解决最大字段和
#includeusing namespace std;int MaxSum(int n,int *a,int &besti,int &bestj){ int sum = 0,starthere,b = 0; besti = bestj = 1; //b存放临时的和besti和bestj分别保存最佳开始和结束位置,starthere临时存放起始位置 for(int i = 1;i <
2011-12-14 20:20:52
624
原创 动态规划解决0-1背包问题
#includeusing namespace std;#includetemplate Type min(Type a,Type b){ return a > b ? b:a;}template Type max(Type a,Type b){ return a < b ? b:a;}template void Knapsack(Type *v,int *w,int
2011-12-13 22:06:43
468
原创 哈夫曼编码
#includeusing namespace std;#include#include #define MAX_CODE 10class HNode{public: char c;//节点的字符 int weight;//节点的权重,即为出现的频率 int lchild;//节点的左孩子的编号 int rchild;//节点的右孩子的编号 char code[MAX_C
2011-12-13 21:24:17
590
原创 动态规划解决最长公共子序列
#include#include#includeusing namespace std;int c[10][10];int b[10][10];void LCSLength(int m,int n,char *x,char *y,int c[10][10],int b[10][10]){ int i,j; for(i = 0;i <= m;i++) c[i][0] = 0
2011-12-12 21:10:36
454
原创 动态规划解决矩阵连乘
#includeusing namespace std;#include/*p是一维数组,记录矩阵的规模(第一个矩阵的行和其余矩阵的列);n是矩阵的个;m是二维数组,记录计算A[i:j],1<=i<=j<=n所需要的最少数乘次数m[i][j];相对应于m[i][j]的断开位置k记为s[i][j]*/void MatrixChain(int *p,int n,int **m,int
2011-12-12 19:16:39
381
原创 快速排序
#includeusing namespace std;templatevoid Swap(Type &x,Type &y){ Type temp = x; x = y; y = temp;}templateint Partition(Type a[],int p,int r){ int i = p,j = r + 1; Type x = a[p]; while(tru
2011-12-08 22:10:01
343
原创 非递归合并排序
#includeusing namespace std;#includeint b[5];templatevoid Merge(Type c[],Type d[],int l,int m,int r){ int i = l,j = m+1,k = l; while( (i <= m) && (j <= r) ) { if(c[i] <= c[j]) d[k++] =
2011-12-08 20:15:23
374
原创 递归合并排序
#includeusing namespace std;#includeint b[5];templatevoid Merge(Type c[],Type d[],int l,int m,int r){ int i = l,j = m+1,k = l; while( (i <= m) && (j <= r) ) { if(c[i] <= c[j]) d[k++] =
2011-12-08 20:02:12
415
原创 递归分治解决全排列问题
#includeusing namespace std;templateinline void Swap(Type &a,Type &b){ Type temp = a; a = b; b = temp;}templatevoid Perm(Type list[],int k,int m){ if(k == m) { for(int i = 0;i<=m;i++)
2011-12-08 16:16:10
476
原创 值调用和引用调用
昨天软考,考到了值调用和引用调用,,受不鸟啊,,又错了。。int a=5;//a是全局变量int f(int &r){ a = r +1; r=r*2; return r;}void t(){ int x=f(a); cout}通过引用调用时应该输出24,因为此时传进去的r就是a!所以a在经过f()函数的调用之后
2011-12-05 21:52:35
713
原创 0-1背包 动态规划
#include#includeusing namespace std;#includetypedef struct{ int index;//物品的编号 int w;//物品的重量 int v;//物品的价值}Goods;int min(int a,int b){ return a}int max(int
2011-12-05 21:48:45
393
原创 哈夫曼编码
#include #include #include #define MAX_CODE 8 class HNode{public: char c; //字符 int weight; //权重 int lchild; //左孩子节点位置 int rchild; //右孩子节点位置
2011-12-05 21:48:00
384
原创 流水作业调度
#include#includeusing namespace std;#include#include#define random(x) (rand()%x)typedef struct { int key; //以Ai还是Bi作为关键字排序 bool job;//标志是Ai>Bi还是Ai int index;//将它作为第index个作
2011-12-05 21:47:27
689
原创 单源最短路径
#include#includeusing namespace std;#define maxint 1000typedef int* pointer;void Dijkstra(int n,int v,int *dist,int *prev,int **c){ bool *s = new bool[n+1];//顶点i是否属于集合s for(int
2011-12-05 21:46:38
433
原创 棋盘问题
#includeusing namespace std;//特殊方格的值赋为0,三个一样的数字表示一个骨牌//tr:棋盘左上角方格的行号//tc:棋盘左上角方格的列号//dr:特殊方格的行号//dc:特殊方格的列号int tile = 1;int ** Bord;//int Bord[8][8]={0};void ChessBord(int tr,i
2011-12-05 21:45:51
377
原创 动态规划解决装载问题
#include#includetypedef int* pointer;int min(int a,int b){ return a > b? b:a; }int max(int a,int b){ return a > b? a:b; }void LodingC1(int C1,int* w,int n,int
2011-12-05 21:44:58
1894
2
原创 回溯法解决装载问题
#include#includeusing namespace std;typedef int* pointer; templateclass Loding{ friend Type MaxLoding(Type [],Type,int,int[]); private: void Backtrack(int i);
2011-12-05 21:43:57
1277
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人