自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(109)
  • 资源 (2)
  • 收藏
  • 关注

原创 位域 大小端

假设多个字段依次为A/B/C/...int A:10;A = 1对应二进制:00 0000 0001,称左侧为高端,右侧为低端一个字节8位,靠近高端放,叫靠左放,靠近低端放,叫靠右放大端:从第一个字段的高端开始,依次切下n位(n小段:从第一个字段的低端开始,依次切下n位(n考虑一下非位域,是不是也满足这个规律

2015-10-27 10:00:08 375

原创 便利贴

int a[2][10];int *q;int (*p)[10];q = a[1]; //a[1]指向一个元素p = a+1; //a+1指向一行 运算符重载: .  .* ::  ?:  sizeof 不可以重载1.   对于单目运算符,建议选择成员函数2.   对于=,(),[],->只能为成员函数3.   对于+=,-=,…,%=建议为成员函数4.

2013-06-05 20:34:06 713

原创 HDU 1164

简单的题目,适合新手学习下面的程序,融合了:1、快速求质数;2、二分查找;3、递归;快速求质数,参考:http://blog.csdn.net/chaoojie/article/details/7710988#include "stdio.h"#include "math.h"int pri[7000];int n;int k;int check(int v){

2013-05-04 17:07:18 986

原创 HDU 1160

类似最长连续(不紧靠)子串,方法有两种参考http://blog.csdn.net/chaoojie/article/details/7919062先按照体重从小到大排序,再按照速度求最长子串#include "stdio.h"typedef struct _Fat{ int w, s; int p;}Fat, *pFat;Fat mice[1001]

2013-05-03 16:52:15 604

原创 HDU 1158 动态规划

#include "stdio.h"#include "string.h"#include "math.h"#define MAX(a, b) ((a)>(b)?(a):(b))#define MIN(a, b) ((a)<(b)?(a):(b))int n;int h, c, f;int w[13]; //12个月int main(){ int i, j, z, m,

2013-05-03 15:30:07 543

原创 HDU 1143

递推,参考资料:http://blog.csdn.net/ma_nong/article/details/7339411http://www.cnblogs.com/chaosheng/archive/2012/06/02/2532030.html当dp[i] 划分成 2 和 i-2 后,再划分成 4和i-4时,4的部分,不能再划分成2 , 2 组合,这样就会和前面的2

2013-04-27 21:36:19 1772

原创 HDU 1116

参考资料:http://www.2cto.com/kf/201107/96614.html当且仅当图是一条欧拉回路或者欧拉通路的时候,才能满足题目的要求,至于欧拉回路和欧拉通路的判定可以总结为如下:1)所有的点联通2)欧拉回路中所有点的入度和出度一样。3)欧拉通路中起点的入度 - 出度 = 1,终点的 初度 - 入度 = 1, 其他的所有点入度 = 出度;#in

2013-04-26 14:47:09 625

原创 Linux Mysql 学习

【远程登录】1、修改my.cnf。把bind-address改为实际IP。这问题可能导致不能远程登录,连不上服务器,而非权限问题2、使用root登录,grant all on *.* to 'xx'@'%' identified by '123',添加新用户。还可再用update更新user表

2012-12-18 16:03:35 335

原创 C语言 类型声明

1、[]与()的优先级相同,自左向右结合2、[]与()的优先级大于*3、[]里面的数字,不能省!即便有多维,也不能省略里面的数字,并且必须和“源”完全一致typedef int T[8]一个数组,长度为8的数组,类型为inttypedef int T()一个函数,返回值为inttypedef int *T[8]

2012-12-17 13:29:29 1101

原创 HDU 3401 DP+单调队列

不会做,看别人的代码,想了一天才想明白原文地址:http://blog.csdn.net/fp_hzq/article/details/7881075#include "stdio.h" #define M 2001 #define MAX(a, b) ((a)>(b)?(a):(b)) int dp[M][M]; int t, m, w; int ap, bp,

2012-12-05 15:53:46 456

原创 hdu 2483

写模拟类型的题是细致活……#include "stdio.h" #include "string.h" int m[301][301]; int r, c; int row[301][301], col[301][301]; int main(){ int z, i, j, k, c1, c0, t, sum; freopen("in.txt", "r",

2012-12-03 14:51:29 639

原创 hdu 3003 背包

背包#include "stdio.h" #include "string.h" #include "stdlib.h" typedef struct _Node{ int price, value; struct _Node *next; }Node, *pNode; pNode brand[11]; int dp[11][10001]; int n, m,

2012-12-03 13:19:18 705

原创 HDU 4004

二分查找:在 0 和 L 之间,枚举距离,假设mm = (0 + L) >>1,然后每次用最长为mm的距离去跳,最后看跳完的次数是否满足条件,若不满足,则表明,#include "stdio.h" int l, n, m; int stn[500005]; void qsort(int st, int ed){ int s = st; int e = ed; in

2012-11-10 10:41:19 705

原创 线索化 树

#include "stdio.h" #include "stdlib.h" typedef struct _Node{ int val; struct _Node* lf; struct _Node* rt; }Node, *pNode; int num[] = {3, 8, 1, 4, 0, 2, 9, 7, 6, 5}; int n = 10; void

2012-09-11 21:39:22 577

原创 整数的素数和分解问题

歌德巴赫猜想说任何一个不小于6的偶数都可以分解为两个奇素数之和。对此问题扩展,如果一个整数能够表示成两个或多个素数之和,则得到一个素数和分解式。对于一个给定的整数,输出所有这种素数和分解式。注意,对于同构的分解只输出一次(比如5只有一个分解2 + 3,而3 + 2是2 + 3的同构分解式)。例如,对于整数8,可以作为如下三种分解:(1) 8 = 2 + 2 +

2012-09-07 18:56:46 1175

转载 判断单链表是否存在环 判断两个链表是否相交问题

原文:判断单链表是否存在环,判断两个链表是否相交问题详解有一个单链表,其中可能有一个环,也就是某个节点的next指向的是链表中在它之前的节点,这样在链表的尾部形成一环。问题:1、如何判断一个链表是不是这类链表?2、如果链表为存在环,如何找到环的入口点?解答:一、判断链表是否存在环,办法为:设置两个指针(fast, slow),初始值都指向头,slow

2012-09-07 14:57:55 421

原创 基数排序

祈祷找个好工作……基数排序,按照从低位到高位,往桶子里塞(LSD)参考资料:http://baike.baidu.com/view/1170573.htm#include "stdio.h" #include "string.h" #include "stdlib.h" typedef struct _Node{ int num; int pos; struct

2012-09-06 15:25:13 364

原创 分治法 大数乘法

不知道有没有更高效的算法#include "stdio.h" #include "stdlib.h" #define M 100 typedef struct _Node{ int s[M]; int l; int c; }Node, *pNode; void cp(pNode src, pNode des, int st, int l){ int i,

2012-09-04 22:09:22 2554

原创 C++虚函数表解析

先看参考资料: 《C++ 虚函数表解析》#include using namespace std; class A{ public: virtual void FuncA(){ cout<<"A::FuncA"<<endl; } // virtual void Func2A(){ // cout<<"A::Func2A"<<endl;

2012-09-02 16:26:13 425

原创 【复习】最大连续子区间 最长递增字串

不熟练的原因是理解的不够深……#include #include #define MAX(a, b) ((a)>(b)?(a):(b))int num[100] = {-1, 2, 5, -4, 3, 0, -1, 3, 6, -10};int n = 10;int func1(){ int i; int max = 0x80000000, sum = 0;

2012-08-29 16:50:03 1054

原创 hdu 1150 二分图 最小点覆盖=最大匹配

到了算法会写,但看不懂题目要用啥算法的阶段……真是悲哀#include #include #include #define M 100int n, m, k;typedef struct _Node{ int to; struct _Node* next;}Node, *pNode;pNode map[M];int match[M];int visit

2012-08-28 21:53:52 476

原创 LCA <O(N logN, O(logN)>

参考资料:http://community.topcoder.com/tc?module=Static&d1=tutorials&d2=lowestCommonAncestor#Another这里加上了RQM转LCA,可以参考《RMQ转换成LCA 》。这个算法的思想与上一篇《LCA 》的思想一样:1、求出树中每个节点的lev(树中的高度)以及每个节点的pare(节点的父亲)。2、假

2012-08-23 15:28:51 1533

原创 LCA <O(N), O(sqrt(N))>

参考资料:http://community.topcoder.com/tc?module=Static&d1=tutorials&d2=lowestCommonAncestor#Another easy solution in O(N logN, O(logN)算法思想:1、求出每个节点i的父亲t[i]和在树中的深度l[i]2、将树按sqrt(n)高度划分成sqrt(n)+0|1块

2012-08-22 16:27:18 1777

原创 RMQ转换成LCA <O(N), O(1)>

参考资料:http://community.topcoder.com/tc?module=Static&d1=tutorials&d2=lowestCommonAncestor#A O(N), O(1) algorithm for the restricted RMQ#include "stdio.h"#include "stdlib.h"#define M 100int

2012-08-21 10:28:34 1908

原创 RMQ DP

最原始的DP,空间和时间复杂度O(n^2)。在线#include "stdio.h"#include "string.h"#define M 100#define MIN(a, b) ((a)<(b)?(a):(b))int num[M] = {2, 1, 67, 33, 53, 21, 6, 35, 44, 61};int n = 10;int dp[M][M];v

2012-08-17 11:49:03 385

原创 RMQ问题 树状数组

用树状数组解决RMQ问题,请看参考资料,作者用Java实现参考资料:http://www.cnblogs.com/ljsspace/archive/2011/08/10/2133514.html下面是仿照用C实现:#include "stdio.h"#include "string.h"#define M 100#define LOW(p) ((p)&(-(p)))int

2012-08-15 17:32:00 672

原创 hdu 1540 线段树

还是要有想象力……这题需要一个栈,用来保存摧毁的顺序。可能出现一个地点,被摧毁多次,而重建时,出栈,只有第一次需要重建,后面再出栈,发现已经是建好的,就不需要再重建例如:摧毁顺序是 5 2 4 5,重建时,5先出栈,重建。然后4、2依次出栈。5再出栈时,发现已经建好,那么就不用再重建了。问题的关键在如何搜索与某个点直接和间接相连的点,我的思路是:首先递归找到这个点,假设是k,然后回退。

2012-08-14 11:46:11 616

原创 hdu 2795 线段树

要注意:h和n的关系,创建树的时候,实际最多200000行#include "stdio.h"#include "stdlib.h"#define MAX(a, b) ((a)>(b)?(a):(b))typedef struct _Node{ int max; int st, ed; struct _Node* lf; struct _Node* rt;}Node, *p

2012-08-13 17:49:19 354

原创 ST 稀疏表

RMQ问题#define MAX(a, b) ((a)>(b)?(a):(b))int num[100] = {3, 9, 10, 4, 0, 7, 1, 8, 12, 5};int n = 10;int f[M][M];void ST(){ int i, j; int k = (int)(log(n)/log(2)); /// for(i=0; i<n; i++){

2012-08-09 14:27:12 1751

原创 hdu 2586 Tarjan离线

参考上一篇文章。这题建图有点不知道怎么下手,稀里糊涂也过了。现在想想Tarjan离线就是DFS+并查集,不难#include "stdio.h"#include "string.h"#include "stdlib.h"#define M 40001#define Q 200int n, q;typedef struct _Node{ int dis; int v;

2012-08-09 10:34:40 533

原创 LCA Tarjin 并查集 离线

以前了解的Tarjin算法是用来求连通分量,在这里是用来求最近公共祖先并查集用过,很有意思的工具。Kraskal算法是并查集最经典的应用。首先初始化集合,每个元素为单个集合。集合,我们需要选出一个代表,这个代表的性质是set[u] = u。一开始一个集合只有一个元素,所以该集合的代表也就是该元素。当两个集合需要合并时,例如:set[a] = a, set[b] = b。要是把a当作合并后集

2012-08-08 19:58:18 1401

原创 堆 排序

#include "stdio.h"int num[100] = {100, 3, 2, 0, 8, 9, 32, 12, 4, 1};int n = 10;void swap(int* a, int* b){ int t = *a; *a = *b; *b = t;}void ajast(int p, int ed){ if(2*p+1>=ed) return; if(

2012-08-06 11:31:23 337

原创 hdu 2190

DPdp[i][j]表示,第i列,以方式j结束时的情况数。#include "stdio.h"#include "string.h"void main(){ int c, n, i; int dp[31][2]; //方式0,以1*1的地砖结束;方式1,以2*2的地板结束 memset(dp, 0, sizeof(dp)); dp[1][0] = 1; dp[2][0

2012-07-27 15:51:13 806

原创 hdu 2189

直接DFS会超时,所以改用DP#include "stdio.h"#include "math.h"#include "string.h"int prime[50], p;void main(){ int c, n, i, j, k, t; int dp[151][50]; //因为个体无差别,所以要保证分组是以个数递增来的 memset(dp, 0, sizeof(dp)

2012-07-27 15:18:18 769

原创 hdu 3487

做了一天……内牛满面……参考资料:http://dongxicheng.org/structure/splay-tree/http://blog.csdn.net/liuwei_nefu/article/details/5901869#include "stdio.h"#include "stdlib.h"typedef struct _Node{ int

2012-07-26 19:50:58 799

原创 C++ 重载赋值运算符

C++类创建时,会产生一个默认的赋值运算符函数:A&  operator=(const A&);普通类实例之间赋值可能没问题,但当类成员变量中有指针引用的动态内存时,复制后只是简单地将指针值复制,而没有将其指向的动态内存也拷贝一份,这样即多个类实例内的指针指向同一动态内存,当类实例析构时,会导致这块动态内存delete多次而产生错误。这也就说明需要我们对一些特别的类重载其赋值运算符函数,即深拷

2012-07-25 17:40:21 659

转载 C++ Traits技术

原文地址:http://www.cppblog.com/woaidongmao/archive/2008/11/09/66387.html概述:traits是一种特性萃取技术,它在Generic Programming中被广泛运用,常常被用于使不同的类型可以用于相同的操作,或者针对不同类型提供不同的实现.traits在实现过程中往往需要用到以下三种C++的基本特性:enum

2012-07-25 10:52:34 4551 2

原创 hdu 3415

单调队列参考资料:http://wenku.baidu.com/view/432e4c2ce2bd960590c677c6.html第一次写,粗心地把最后输出语句的%n写成了%k,搞了好久#include "stdio.h"#define M 100010typedef struct _Node{ int val; int pos;}Node, *pNode;Node

2012-07-24 16:10:07 533

原创 Splay 伸展树

应该算比较精简了,不过 指针 和 指向指针的指针 实在头疼!#include "stdio.h"#include "stdlib.h"typedef struct _Node{ int val; int rev; int child; struct _Node* pre; struct _Node* ch[2]; //0,左孩子; 1,右孩子;}Node, *pNode;

2012-07-19 16:15:10 329

原创 Treap 堆树

与AVL树操作类似,代码更简单#include "stdio.h"#include "stdlib.h"#include "time.h"typedef struct _Node{ int data; int fix; struct _Node* lf; struct _Node* rt;}Node, *pNode;void l_rot(pNode* root){ pN

2012-07-19 11:47:26 382

Hadoop 1.1.1 eclipse-plugin

Hadoop 1.1.1 eclipse Juno版本 在Ubuntu 12.04下运行正常

2012-12-14

Windows下搭建Hadoop

Windwos下,用Cygwin模拟Linux环境,搭载Hadoop

2012-08-14

空空如也

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

TA关注的人

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