自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 INT_MIN的表示法

我们可以在文件中看到 #define INT_MIN ( -INT_MAX - 1) 这是因为,对于INT_MAX 2147483647 INT_MIN = -2147483648 对于-2147483648,C/C++中这是一个常量表达式,由一元负运算符“-” 和一个常量”2147483648“组成,而2147483648超出了int的最大表示范围 而常量类型的匹配规则按照int ,u

2015-03-25 15:54:39 745

原创 关于交换两个值的一些讨论

void swap_1(int& a, int& b) { int temp = a; a = b; b = temp; } 以上是交换两个int值的直觉方法 另外,其实还有 void swap_2(int& a, int& b) { a = a + b; b = a - b; a = a - b; } 以上情况不需要考虑int值相加溢出的问题,溢出了还可以减回来 另外还有一种

2015-03-25 11:06:11 328

原创 string实现big int类

头文件BigNumber.h #ifndef BIGNUMBER_H #define BIGNUMBER_H #include #include using namespace std; class BigNumber { private: string Num; string Code; public: BigNumber(){} BigNumber(int num); BigNum

2012-12-21 22:11:23 350

原创 算法 小兔齐齐跑无向图(待解决)

给定一个无向图,小兔齐齐一开始位于某个节点上(我们不知道他具体在哪个节点上)。我们知道每一秒小兔都必定会向他所在的节点的某一个邻居节点出发(如果存在邻居节点;假设小兔的移动速度很快,移动时间可以忽略)。在每一秒你可以做不超过2次的询问,每次可以询问某个节点是否有小兔! 现在假设小兔不想被我们找到,同时小兔非常聪明,那么我们需要至少几秒才能必定找到小兔的位置? Input: 输入数据第一行包含一

2012-12-21 22:07:57 419

原创 算法 shadow听音乐

shadow喜欢听音乐,于是v11自己写了个播放器送给了shadow,这个播放器有一个播放列表,一个“下一首”按钮,一个“上一首”按钮,还有一个播放记录。 一开始播放器会播放播放列表中的第一首歌,当按下“下一首”按钮时,它会播放当前歌曲在播放列表中的下一首歌,若当前歌曲就是播放列表中的最后一首歌时,它仍会播放播放列表中的最后一首歌;当按下“上一首”按钮时,它会清除播放记录中的最后一首歌,并播放清

2012-12-21 22:06:13 291

原创 算法 Jack的完美点餐方案

Problem Description Jack最近喜欢到学校餐厅吃饭,好吃干净还便宜。 在学校餐厅,有a种汤,b种饭,c种面条,d种荤菜,e种素菜。 为了保证膳食搭配,Jack每顿饭都会点1~2样荤菜,1~2样素菜(不重复)。同时,在Jack心情好的时候,会点一样饭,再配上一种汤。在心情不好的时候,就只吃一种面条。 因为经济有限,Jack每次点餐的总价在min~max之间。Jack想知道,总共

2012-12-21 22:03:55 682

原创 排序算法之归并排序

时间复杂度O(nlog n); 需要 O(n) 额外空间,稳定的排序 #include #include using namespace std; //谓词函数 template bool Elemasc(const T &left,const T &right) { return left<right; } template bool Elemdesc(const T &left,co

2012-12-21 21:59:20 154

原创 随机化顺序统计选择程序

可以在O(n)的期望时间内找到输入数据中第i大的数,不依赖于输入数据,最坏运行时间O(n^2) #include using namespace std; template int RandomizedPartition(T A[],int p, int r) { int i = rand()%(r-p+1)+p; swap(A[i],A[r]); T x = A[r]; i = p

2012-12-21 21:57:35 252

原创 排序算法之堆排序

堆排序,原地排序算法,时间复杂度O(nlog n),不稳定的排序算法 数组实现 inline int Parent(int i) { return (i-1)/2;//以数组下标为0开始计算,如以1开始计算则为i/2 } inline int Left(int i) { return (2*i+1);//以数组下标为0开始计算,如以1开始计算则为2*i } inline int R

2012-12-21 21:50:09 161

原创 排序算法之快速排序

快排,O(nlog n) 期望时间,O(n^2) 最坏情况; 对于大的、乱数列表一般相信是最快的已知排序 不稳定的排序,需要输入无关时要用到随机化过程 template int Partition(T A[],int p, int r) { T x = A[r]; int i = p-1; for(int j=p;j<=r-1;j++) { if(A[j]<= x) {

2012-12-21 21:47:25 167

原创 排序算法之基数排序

基数排序,利用计数排序思想,对数据分别按位数进行计数排序,时间复杂度O(n·k); 需要 O(n) 额外空间,是稳定的排序 #include using namespace std; void RadixCountSort(int A[], int k, int len)//分别为需排序的数组,排序的基数,数组的长度 { int *C = new int[k]();//计数排序所需临时空间

2012-12-21 21:43:40 206

原创 排序算法之计数排序

计数排序,适用于明确输入数据的范围的情况 时间复杂度为O(n),稳定,需要 O(n+k) 额外空间 #include using namespace std; void CountingSort(int A[], int B[], int k, int len) { int *C = new int[k+1]; int i; for(i=0;i<=k;i++) C[i]=0;

2012-12-21 21:40:58 142

原创 汉诺塔程序

简单嵌套应用 #include #include using namespace std; void move(int n,char a,char b,char c) { if (n==1) cout "<< c << endl; else { move(n-1,a,c,b); cout "<< c << endl; move(n-1,b,a,c); } } int

2012-12-21 21:12:18 163

原创 栈简单实现

初始为10,动态扩张,动态收缩没写(内容少于1/4时收缩) #ifndef M_STACK_H #define M_STACK_H #include template class m_Stack { private: int Capacity; T *m_StackBase; size_t Length; void IfOverflow(); public: m_Stack():C

2012-12-21 21:06:57 211

原创 Sudoku

搜索法解数独程序,dfs #include #include #include #include using namespace std; #define N 9 #define M 3 int Sudoku[N][N] = {0}; int cnt = 0;//记录解的个数 bool x[N][N] = {0};//x[i][j]代表第i行是否存在数j bool y[N][N] =

2012-12-21 01:37:10 238

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除