自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 红黑树代码

原文链接:http://www.mamicode.com/info-detail-1431070.html#define BLACK 1#define RED 0using namespace std;class bst {private: struct Node { int value; bool color; Node

2017-08-16 18:12:04 301

原创 windows可视化编程(6)

这章总结下mfc常用的控件,控件比较多,给出一些常见的模板①button对于普通按钮最常见的就是点击事件了void CMy9_1Dlg::OnButton1() { // TODO: Add your control notification handler code here m_btn1.SetWindowText("你已按下了按钮!");//设置按钮上的文字}单选按钮

2017-08-08 23:24:34 635

原创 windows可视化编程(五)

#include "c:\prog_book\7_1\7_1.h"#include "windows.h"MENU MENU DISCARDABLE BEGIN POPUP "文件(&F)" BEGIN MENUITEM "创建统计计算菜单项(&P)\t Ctrl+P", IDM_ADDMENU MENUITEM "删除统计计算菜单项(&D)\

2017-08-07 21:41:16 1260

原创 windows可视化编程(四)

这章总结以下鼠标和键盘事件,先上示例程序://消息处理函数long WINAPI WndProc(HWND hWnd,UINT iMessage,UINT wParam,LONG lParam){#define BufSize 15 //设置存放字符的缓冲区大小 static char cCharBuf[BufSize]; //设置静态字符数组,存放输入的字符,字符个数不能超出

2017-08-07 21:06:24 621

原创 windows可视化编程(三)

这章总结下文本操作,先上一个简单的文本输出程序:LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,UINT wParam,LONG lParam){ static long nXChar,nCaps,nYChar; HDC hDC; //定义指向设备上下文的句柄 short x; TEXTMETRIC tm; shor

2017-08-07 20:55:15 890

原创 windows可视化编程(二)

这节总结下笔刷的使用,首先看程序#include#include#includelong WINAPI WndProc(HWND hWnd,UINT iMessage,UINT wParam,LONG lParam);BOOL InitWindowsClass(HINSTANCE hInstance);BOOL InitWindows(HINSTANCE hInstance,int

2017-08-07 20:42:27 2178

原创 windows可视化编程(一)

最近在看mooc上的 VC++可视化编程,边看边做点记录吧首先是一个空壳的程序架构#include LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM); //窗口函数说明//------------ 以下初始化窗口类----------------int WINAPI WinMain(HINSTANCE hInstance,HINST

2017-08-07 20:26:24 2951

原创 哈夫曼树和哈夫曼编码

哈夫曼树要解决的问题是对不同频率元素查找的效率最高,哈夫曼编码代码如下:首先要明白,哈夫曼树要查找的元素都在叶结点上,而且哈夫曼树的最终元素是确定的为2*n-1个。这样我们可以用结点数组来表示树,每一个结点的 child和parent指向自己的父亲和儿子的索引。首先实现select函数,从结点数组选出权重最小的两个合并,存储新结点,构造出哈夫曼树,然后从叶结点开始向上查找,左儿子为0,右儿子为

2017-08-06 20:58:04 531

原创 AVL旋转操作详解

第一种旋转方式是LL类型,如图所示:k2的左边比右边高了2,说明X的高度比Z高1代码如下void LL_Rotate(AVLNode* &p) { AVLNode * lc = NULL; lc = p->lchild; //lc指向p的左子树根结点 p->lchild = lc->rchild; //lc的右子树挂接

2017-05-13 15:11:35 630

原创 HDU1087 最简单的lis动态规划

#include#include#define INF 0x3f3f3fusing namespace std;int dp[10001];int num[10001];int main(){ int n; while (cin >> n,n) { for (int i = 1; i <= n; i++) cin >> num[i]; dp[1] = num[1]

2017-05-08 18:01:29 332

原创 HDU1003 最长子序列和 max sum

序列型的动态规划找状态一般考虑起始开始的点。例如这题状态是以i结尾的序列的最长子序列和dp[i]。#include#includeusing namespace std;#define INF 0x3f3f3f3fint dp[100001];int num[100001];int first[100001];int main(){ int m; while (cin >>

2017-05-08 16:59:03 250

原创 反字典序输出整数所有分割方式

来源是《C语言名题精选百则》算法思想是:(1)每次从数中抽取一个残留数sum。如果结尾不是1,sum为1,如果结尾是1,sum是所有1的和加1.(2)抽取sum后原来的数变成size。再用size去分sum。(3)sum%size作为最后一个数。/* ------------------------------------------------------ *//* PRO

2017-05-07 15:01:39 415

原创 字典序全排列

C语言名题百则的字典序排列程序好像优点问题。。。参考了另外一位大神的程序思路就是先确定排列个数,然后每次从排列从右往左找出第一个逆序数,再将其与右边最小的数交换,然后将右边数反转。#include #includeint a[10], N;int cmp(const void *a, const void *b){ return *(int*)a - *(int*)b;}

2017-05-06 17:30:15 585

原创 旋转法列出所有排列

代码如下:/* ------------------------------------------------------ *//* PROGRAM permutation by rotation : *//* Give an integer n, this program generates all *//* possibl

2017-05-06 14:29:00 491

转载 矩阵运算总结

#define LL __int64 using namespace std; const int MAXN = 5; // 矩阵的最大行和列 const int MOD = 1e5; // 如果可以不用取模,则尽量不用 const double eps = 1e-6; // 处理细小的

2017-05-02 19:12:12 572

原创 图论-网络流

最大流#include #include #include #include #include #include #include using namespace std; const int N = 1100; const int INF = 0x3f3f3f3f; struct Node { int to;//终点

2017-04-30 15:48:51 252

原创 hdu1010 经典的DFS+奇偶剪枝

这题很久以前做的,不过当时没AC - -后来发现是count没有放在代码里面(注意有多组测试数据 - -)DFS注意回溯的话要把访问标记重置。剪枝代码放在DFS两个地方,一个是访问领接点之前,这是对一个点状态剪枝,另外一个是放在访问领接点的代码里,是对多个状态的比较关系剪枝。奇偶剪枝:剩余步数和最小步数的奇偶性相同#includeusing namespace std;#def

2017-04-30 13:42:48 300

原创 堆的操作

堆就是优先队列,每次取都是权重最小最大数typedef struct HNode *Heap; /* 堆的类型定义 */struct HNode { ElementType *Data; /* 存储元素的数组 */ int Size; /* 堆中当前元素个数 */ int Capacity; /* 堆的最大容量 */};typedef

2017-04-29 23:37:58 223

原创 图论-最小生成树算法

Prim算法void prime() { int i,j,min,mindis=0,next; memset(tree,0,sizeof(tree)); for(i=1;i<=point;i++) { lowdis[i]=map[begin][i];//用lowdis[]数组记录下从起点到剩下所有点的距离 }

2017-04-29 23:10:53 297

原创 hdu1385

重点是打印路径的方法#include#include#include#include#define MAX 10000#define INF 0X3f3f3f3fusing namespace std;int G[MAX][MAX];int dp[MAX][MAX];int path[MAX][MAX];int tax[MAX];int n;void Floyd()

2017-04-29 18:14:48 263

原创 HDU 2544 最短路dijstra算法

#include#include#include#include#define MAX 0x3f3f3f// MAX设置要注意 using namespace std;struct Node{ int time; int from; int to;};int visit[101];int dis[101];typedef vector*Graph;void add_

2017-04-29 14:04:02 387

原创 图论算法-搜索

BFSbool visited[MAX_VERTEX_NUM); //访问标记数组 void BFSTraverse(Graph G){ //对图G进行广度优先遍历,设访问函数为visit() for(i=0;i<G.vexnum;i++) visited[i]=FALSE; //访问

2017-04-29 10:27:32 598

原创 图论算法-并查集

初始化把set所有值设为-1(都是根),合并两个集合的时候,先用find函数找出各个集合的根,寻找根的时候利用递归进行路径压缩,都指向根结点。合并的时候先比较规模,由于是负数,更大值更小。void Union( SetType S, SetName Root1, SetName Root2 ){ /* 这里默认Root1和Root2是不同集合的根结点 */ /* 保证小集合并入大

2017-04-27 11:13:39 338

原创 图论算法-建图和最短路

建图方法:详细参见http://blog.csdn.net/stay_accept/article/details/50886067常见两种:联表法#include #include #include #include #include using namespace std; int N,M; struct node{ int t

2017-04-26 13:36:00 491

原创 POJ2299 树状数组+离散化

树状数组主要两个操作,求和,修改#include#includeusing namespace std;#define N 500001int c[N];int n;struct Node{ int val; int pos;};Node node[N];int a[N];int lowbit(int x){ return x&(-x);}int sum(in

2017-04-26 11:56:51 293

原创 HDU3791

测试数据没错 找了半天不知道错在哪。。一直WAhttp://acm.hdu.edu.cn/showproblem.php?pid=3791#include#includeusing namespace std;typedef struct treenode{ struct treenode* left; struct treenode* right; int data;

2017-04-25 23:04:30 381

原创 二叉树知识总结

二叉树的定义:typedef char ElementType; typedef struct BiTreeNode { ElementType data; struct BiTreeNode* lchild; struct BiTreeNode* rchild; }BiTreeNode, *BiTree; 二叉树的创建://递归

2017-04-25 17:43:41 309

原创 HDU2194 二维完全背包

之前还没碰到过二维的,不过和一维方法类似,主要搞清楚每一个物品会导致哪个量变化,会受哪些量限制,限#include#include#define MAX 101using namespace std;int dp[MAX][MAX] ,c[MAX],w[MAX];//dp为j点忍耐值,x次可以获得的最大经验int main(){ int n, m, k, s; while (c

2017-04-25 11:08:10 338

原创 hdu2844 多重背包+二进制优化

直接用多重背包,超时#include#include#define INF 1000using namespace std;int main(){ int n,m; while (cin >> n >> m, m,n) { int *c= new int[n]; int *w= new int[n]; int *num = new int[n]; for (in

2017-04-24 16:29:51 320

转载 背包问题模板

01背包模板int main() { int i, j, n, m; while(scanf("%d",&n)!=EOF) { scanf("%d", &m); for(i=0; i<n; i++) scanf("%d%d", &wei[i],&val[i]);//wei[i]为重量,v

2017-04-24 08:48:33 279

空空如也

空空如也

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

TA关注的人

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