C、C++开发
一只鸟的天空
一个偏执狂,一个强迫症患者.....
微博地址: http://weibo.com/1765411302
欢迎数据挖掘与机器学习从业者一起交流
展开
-
一维带权邮局位置问题(找带权中位数)C++实现
带权 邮局位置问题: 已知n个点p1,p2,...,pn及与它们相联系的权重w1,w2,...,wn。我们希望能找到一点p(不一定是输入点中的一个),使和式 最小,此处d(a,b)表示点a和点b之间的距离。 对于一维带权邮局位置问题即找带权中位数。如下// 一维邮局选址问题.cpp原创 2011-10-29 22:43:59 · 3152 阅读 · 0 评论 -
ACM小明的数学题Ⅰ C++实现
小明的数学题ⅠDescription 小明是个小学五年级的学生,为了早点去看自己爱看的卡通,他想快点把作业做完。可是可恶的数学老师今天却布置了一道难题,小明想了很久也不知道该怎么做。你的任务就是帮小明解决掉这道数学题。题目是这样子的,有一个整数a(-2^31输入:第一行是一个整数K,表示有多少个测试用例,以后每行一个测试用例,每行有两个整数a,n。输出:每行输出原创 2011-10-31 23:32:22 · 1651 阅读 · 0 评论 -
ACM小明的数学题ⅡC++实现
小明的数学题ⅡDescription 小明是个小学五年级的学生,为了早点去看自己爱看的卡通,他想快点把作业做完。可是可恶的数学老师今天却布置了一道难题,小明想了很久也不知道该怎么做。你的任务就是帮小明解决掉这道数学题。题目是这样子的,有一个正整数n(1输入:第一行是一个整数K,表示有多少个测试用例,以后每行一个测试用例,每行有一个整数n。输出:每行输出一个测试用原创 2011-10-31 23:47:32 · 2074 阅读 · 0 评论 -
二叉查找树(二叉排序树)操作大全C++实现
// 链式二叉查找树的各种操作.cpp : Defines the entry point for the console application.//#include "stdafx.h"#includeusing namespace std;struct BSTree{ int data; BSTree *left; BSTree *right;};原创 2011-11-01 00:36:50 · 2844 阅读 · 2 评论 -
ACM哈夫曼树建立、哈夫曼编码C++实现
// 哈夫曼树.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include#define MAX 20using namespace std;typedef char valType;typedef double wghType;struct HFMn原创 2011-11-01 15:48:12 · 4674 阅读 · 0 评论 -
ACM非前缀编码 C++实现
非前缀编码 Description 有很多方法可以实现使用2进制序列对字符进行编码,比如典型的Huffman编码,如果在对字符的2进制编码中不存在某一个字符的编码是另一个字符编码的前缀,那么就称这种编码方式为非前缀编码,Huffman编码就是一种非前缀编码。比如 A:00 B:10 C:0100 D:0101 则这种编码为非前缀编码;A:01 B:10 C:010 D:0000,则这种编原创 2011-11-01 21:08:56 · 2103 阅读 · 1 评论 -
ACM节约每一个字节 C++实现
节约每一个字节 Description John在做一个项目,项目对存储容量有着近乎苛刻的要求,为此John需要对一些东西进行压缩存储。John的第一个问题就是一大堆的字符串,存储它们太占地方了,为此他想了一个办法:如果字符串具有相同的后缀,那么就把这么字符串的相同后缀和在一起,这样就能节约一点空间了。比如说有两个字符串分别为“Programming”和“Something”,这样它们有原创 2011-11-01 21:10:55 · 1136 阅读 · 0 评论 -
ACM John的农场(最小生成树) C++实现
John的农场Description John是一个农场主,他有几个牧场,为了好好照顾他的牛,他必须在几个牧场之间来回,可糟糕的天气往往使得道路非常泥泞,为此John准备在牧场之间铺一些石子路,这样在下雨天也能快速地从一个牧场到另外一个牧场。但John的资金有限,为了自己能从任一个牧场都通过石子路到达另外一个牧场,他需要好好设计一下线路。请帮助John设计好线路,使得John能从任一个牧场原创 2011-11-01 21:15:00 · 3373 阅读 · 0 评论 -
红黑树的各种操作
红黑树各种操作// 红黑树各种操作.cpp : Defines the entry point for the console application.//#include "stdafx.h"#includeusing namespace std;enum MyColor{red,black};typedef int DType;struct RBTree{原创 2011-11-01 22:49:03 · 1409 阅读 · 0 评论 -
流水线调度最优问题(装配线调度问题)动态规划 O(n)时间(线性时间)C++实现
流水线调度最优问题(装配线调度问题)动态规划 O(n)时间(线性时间) 问题描述:有二条流水线,每条流水线都有n个站,流水线1,2站j的处理功能相同,但处理时间可能不同,每个站都有一个处理时间,而且从一条流水线的站j-1到另一条流水线站j有一个消耗时间t1[j-1](从流水线1到2)或t2[j-1](从流水线2到1),同一条流水线站j-1到站j的消耗时间忽略不计,物品上每一条流水线有个时间原创 2011-11-02 17:27:07 · 5764 阅读 · 2 评论 -
ACM零件C++实现
零件 Description 有一种工业零件,分成左右两半,它们的形状由’X’和空格表示的二维图形表示,比如:左半的零件形状如下:XXXXXXXXXXXXXXX右半的零件的形状如下 XXX原创 2011-10-31 22:25:03 · 1329 阅读 · 0 评论 -
ACM恺撒密码C++实现
恺撒的密码Description恺撒时代充满了动荡和危险,恺撒为了保证在战争中传递秘密消息,发明了一种密码。他在所有的信件中将所有的字符按字母顺序向后移动了5个位置(比如说,原文中是A,那么密信中就为F),密信中字母和原文中字母的对应关系如下:密文:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 原文:V W X Y Z A原创 2011-10-31 22:21:18 · 3710 阅读 · 0 评论 -
利用随机化快速排序求带权中位数C++实现
// 利用随机化快速排序求带权中位数.cpp : Defines the entry point for the console application.////中位数:n个元素集合中,第n/2小的元素,如果是偶数个,则选择中间二个的算术平均值。//带权中位数:对于n个互不相同的元素集合x1、x2……xn,其权重依次为w1、w2……wn。按x值排好序后,//从第一个元素的权值开始进原创 2011-10-29 22:05:09 · 2017 阅读 · 0 评论 -
二维带权邮局位置(选址)问题(分别求横坐标、纵坐标的带权中位数)C++实现
带权 邮局位置问题: 已知n个点p1,p2,...,pn及与它们相联系的权重w1,w2,...,wn。我们希望能找到一点p(不一定是输入点中的一个),使和式 最小,此处d(a,b)表示点a和点b之间的距离。 找出二维带权邮局位置问题的最佳解答,其中所有的点都是(x,y)坐标对,并且点a原创 2011-10-29 23:12:41 · 2578 阅读 · 0 评论 -
堆排序C++实现
// 堆排序.cpp : Defines the entry point for the console application.//时间复杂度为nlgn//建立最大堆#include "stdafx.h"#includeusing namespace std;int A[100];////保持堆得性质//a 为待排序数组,sum是待排序元素个数 i是父元素序号原创 2011-10-30 16:47:32 · 1165 阅读 · 2 评论 -
ACM列车长的烦恼(C语言实现)
John是个小列车站的站长,每次列车在这里重新编组时他就很烦恼。因为站上只有一个人字形的编组轨道(如图),所有的列车车厢都是从人字轨的左边依次进去,从右边出来。但有一些编组顺序John总编不出来,John怀疑有些编组顺序是不可能完成的,可John又找不出那些是顺序是可以编组出,那些不可以。请你写一个程序帮助John辨别哪些编组可以完成,哪些不能完成。输入:第一行是一个整数K,表示有多少个测原创 2011-10-30 22:05:54 · 2929 阅读 · 0 评论 -
ACM远古文明的算术题 (C语言实现)
远古文明的算术题 Description考古人员发现地球在一亿年以前曾经存在一个高级文明叫做Delta,而且发现这个文明的具有文字和语言。经过艰苦卓绝的工作,专家们破译了其中的一些文字和表示方法。他们使用+表示加运算,-表示减运算,*表示乘运算,/表示整数除运算,%表示取模运算,但算术式的表示和我们不同,他们把要计算的数放到前面,运算符放在计算对象的后面,比如 1 2 + 表示 1+2,原创 2011-10-30 22:09:14 · 2302 阅读 · 1 评论 -
ACM成对的字符串(C++实现)
成对的字符串 Description有些字符串,如果满足下面的性质,则称为成对的字符串:a. 所有的字符在字符串中出现偶数次b. 每一对相同的字符之间不会有出现奇数次的字符现在给你一些字符串,请判断这些字符串是否为成对的字符串。输入:第一行是一个整数K,表示有多少个测试用例,以后每行一个测试用例。每行为一个字符串(长度不超过1000个字符)。输出:每行输出一个测原创 2011-10-30 22:12:57 · 1750 阅读 · 0 评论 -
ACM括号编码(C++实现)
括号编码 Description S = s1 s2...s2n 是一个符合格式的括号的字符串,S能按下面两种方式编码:P编码:编码是一个整数序列P = p1 p2...pn,pi是第i个右括号之前的左括号的数目。W编码:编码是一个整数序列W= p1 p2...pn,wi是第i个右括号的编码值,它等于这个右括号到与之匹配的左括号之间的右括号的数目(包括它自己)。比如:原创 2011-10-30 22:22:34 · 2091 阅读 · 0 评论 -
二叉查找树的各种操作C++实现
// 链式二叉查找树的各种操作.cpp #include "stdafx.h"#includeusing namespace std; struct BSTree{ int data; BSTree *left; BSTree *right;};BSTree *T=NULL;int a[100];//插入排序二叉树void insert(原创 2011-10-30 23:02:01 · 1368 阅读 · 0 评论 -
二叉排序树(二叉查找树)的各种操作C++最新实现
// 链式二叉查找树的各种操作.cpp : Defines the entry point for the console application.//#include "stdafx.h"#includeusing namespace std;struct BSTree{ int data; BSTree *left; BSTree *right;};原创 2011-10-31 22:15:20 · 3146 阅读 · 0 评论 -
ACM最长公共子序列问题(动态规划)C++实现
// 最长公共子序列问题.cpp : Defines the entry point for the console application.//动态规划问题对于X=x1x2...xm , Y=y1y2...yn的最长公共子序列Z=z1z2...zk1)、如果xm=yn,那么zk=xm=yn,且Zk-1是Xm-1和Yn-1的一个LCS2)、如果xm!=yn,那么zk!=xm蕴含Z是原创 2011-11-02 23:49:31 · 4229 阅读 · 0 评论 -
ACM最长单调递增子序列问题(动态规划)o(n*n)C++实现
最长单调递增子序列问题(动态规划)o() // 最长单调递增子序列.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include#define N 100using namespace std;//递归打印最长递增子序列void print_it(c原创 2011-11-03 14:57:03 · 3490 阅读 · 0 评论 -
求有向图的强连通分支(邻接表存储)C++实现
// 强连通分支(邻接表存储).cpp : Defines the entry point for the console application.//通过二次利用深度优先搜索访问节点,每次的深度优先搜索操作不同 #include "stdafx.h"#include#define MAX 100using namespace std;//深度搜索访问节点层次标志枚举变原创 2011-11-07 17:32:31 · 2573 阅读 · 0 评论 -
最小生成树Kruskal算法实现C++实现
// Kruskal算法实现.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include#define MAX 100typedef int WeiType;using namespace std;//struct Edge{ int no;原创 2011-11-08 18:06:56 · 5925 阅读 · 0 评论 -
最小生成树Prim算法实现(采用邻接表存储)C++实现
// Prim算法实现(采用邻接表存储).cpp : Defines the entry point for the console application.//#include "stdafx.h"#include "stdafx.h"#include#define MAX 100#define Infinity 65535typedef int WeiType;原创 2011-11-08 20:00:26 · 6315 阅读 · 0 评论 -
ACM唯一的最小生成树C++实现
ACM唯一的最小生成树Description求一个非负权边的无向连通图的最小生成树,如果这个无向图存在两个或两个以上的最小生成树,就输出Not Unique,否则输出最小生成树的边的权值和。输入:第一行是一个整数K,表示有多少个测试用例,以后每个测试用例占m+1行。每个测试用例的第一行为两个整数n,m(3输出:每行输出一个测试用例的结果。如果这个无向图存在两个或两个以上的最原创 2011-11-08 22:29:26 · 2477 阅读 · 0 评论 -
单源最短路径Dijkstra算法C++实现
// 单源最短路径Dijkstra算法实现.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include#define MAX 200#define Infinity 65535using namespace std;//边尾节点信息结构体struct原创 2011-11-09 20:26:34 · 4680 阅读 · 0 评论 -
单源最短路径Bellman_Ford算法C++实现
// 单源最短路径Bellman_Ford算法.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include#define MAX 100#define Infinity 65535typedef int WeiType;using namespace st原创 2011-11-09 22:27:46 · 1628 阅读 · 0 评论 -
差分约束系统C++实现
差分约束:线性规划矩阵A的每一行包含一个1与一个-1,其他元素为0.因此,由Ax xj-xi其中1 解决方法:把n个未知元看成n的有向图的顶点,xj-xi可以证明 xi=β(v0,vi)(β(v0,vi)为顶点0到顶点i的最短路径长度)。所以就可以利用Bellm原创 2011-11-10 02:24:21 · 1488 阅读 · 0 评论 -
ACM黑箱子C++实现
ACM黑箱子Description有一个黑箱子,里面会按升序存储整数,你可以对黑箱子下达下面的指令:a. ADD n 将n加入黑箱子b. Get 获得一个数,这个数在黑箱子里的序号(从0开始计数)是Get的出现次数。黑箱子中最初存了一个数0,现给你一个操作序列,要你输出Get命令时获的那个数。输入:每行是一个命令,如果命令是”ADD”,则后面空一格,有一个整数。输入时保原创 2011-11-11 16:24:10 · 1483 阅读 · 0 评论 -
ACM食物链 C++实现
ACM食物链 Description动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形。A吃B, B吃C,C吃A。现有N个动物,以1-N编号。每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种。 有人用两种说法对这N个动物所构成的食物链关系进行描述:第一种说法是"1 X Y",表示X和Y是同类。 第二种说法是"2 X Y",表示X吃Y。 此人对N个动原创 2011-11-11 16:28:44 · 2839 阅读 · 0 评论 -
有向无回路图拓扑排序C++实现
// 有向无回路图拓扑排序.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include#define MAX 100using namespace std;enum Color{white,gray,black};struct edgeNode{原创 2011-11-05 23:24:19 · 2807 阅读 · 1 评论 -
无向图的一节点到另一节点的最短路径(边数最少的路径)(采用邻接表存储)
// 无向图的一节点到另一节点的最短路径(边数最少的路径)(采用邻接表存储).cpp : Defines the entry point for the console application.//#include "stdafx.h"#include#define MAX 100#define MAXQ 50using namespace std;struct edg原创 2011-11-05 20:20:31 · 4813 阅读 · 0 评论 -
最优二叉查找树的期望搜索代价(动态规划)C++实现
// 最优二叉查找树的期望搜索代价.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include#include#include#define N 100using namespace std;const double MAX = numeric_l原创 2011-11-03 20:34:38 · 2169 阅读 · 0 评论 -
活动选择问题(活动安排问题)(最大数目活动选择问题)贪心算法C++实现
// 活动选择问题(活动安排问题)(最大数目活动选择问题).cpp : Defines the entry point for the console application.//贪心算法#include "stdafx.h"#include#define N 100using namespace std;struct Activity{ int number;原创 2011-11-03 22:44:57 · 5367 阅读 · 0 评论 -
区间图着色问题(贪心算法)C++实现
区间图着色问题 问题描述:假设要用很多个教室对一组活动进行调度。我们希望使用尽可能少的教室来调度所有活动。请给出一个算法,来确定哪一个活动使用哪一间教室。这个问题也被称为区间图着色问题,即相容的活动着同色,不相容的着不同颜色,使得所用颜色数最少。//贪心算法#include "stdafx.h"#include#define N 100using namespace原创 2011-11-04 02:34:29 · 8300 阅读 · 0 评论 -
ACM小明的数学题Ⅲ
小明的数学题Ⅲ Description 小明是个小学五年级的学生,为了早点去看自己爱看的卡通,他想快点把作业做完。可是可恶的数学老师今天却布置了一道难题,小明想了很久也不知道该怎么做。你的任务就是帮小明解决掉这道数学题。题目是这样子的,有两个实数a,b,计算a/b,要求保留小数点后面n 位(0输入:第一行是一个整数K,表示有多少个测试用例,以后每行一个测试用例,每行有三个原创 2011-11-04 20:01:39 · 1498 阅读 · 0 评论 -
ACM第K个数 C++实现
第K个数Description 给你一个整数序列和若干个问题,问题是这个序列的第i个元素到第j个元素的片断中的第k大数是什么?比如说给你的序列为(1, 5, 2, 6, 3, 7, 4),问题是(2,5,3),则从第2个元素到第5个元素为(5,2,6,3),排序以后是(2,3,5,6),则第三个数是5。输入:第一行为两个整数n,m(1 输出:每行输出对应问题的结原创 2011-11-04 20:04:14 · 1874 阅读 · 0 评论 -
希尔排序C++实现
希尔排序// 希尔排序.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include#define N 100using namespace std;typedef int DataType;void shell_sort(DataType *data,原创 2011-11-04 23:09:32 · 1271 阅读 · 0 评论