AC_Gibson
码龄11年
关注
提问 私信
  • 博客:442,168
    社区:41
    442,209
    总访问量
  • 387
    原创
  • 1,029,341
    排名
  • 113
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:北京市
  • 加入CSDN时间: 2014-05-16
博客简介:

AC_Gibson的专栏

博客描述:
while(alive) ACing;
查看详细资料
个人成就
  • 获得185次点赞
  • 内容获得54次评论
  • 获得529次收藏
  • 代码片获得457次分享
创作历程
  • 3篇
    2016年
  • 286篇
    2015年
  • 98篇
    2014年
成就勋章
TA的专栏
  • 数论
    81篇
  • 计算几何
    16篇
  • 组合数学
    10篇
  • 高斯消元
    10篇
  • 常用模板
    36篇
  • 模拟题
    32篇
  • 循环节
    7篇
  • 字符串
    48篇
  • KMP
    13篇
  • 贪心
    11篇
  • DP
    39篇
  • 数位DP
    8篇
  • 概率DP
    2篇
  • 树形DP
    3篇
  • LCS&LIS
    8篇
  • RMQ
    6篇
  • 图论
    58篇
  • 搜索
    28篇
  • 无名
    1篇
  • 尺取法
    2篇
  • 二分&三分
    11篇
  • 数据结构
    24篇
  • 优先队列
    3篇
  • Tire树&AC自动机
    22篇
  • 线段树&树状数组
    28篇
  • 主席树
    1篇
  • Python学习笔记
    4篇
  • Linux/Unix
    3篇
  • 数据库
    1篇
  • 哈希
    1篇
  • 《C++Primer 5e》学习笔记
    6篇
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

357人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

GCC编译详解

GCC(GNU Compiler Collection--GNU编译器套件)可以编译C、C++、Object C、Java、Fortran、Pascal、Modula-3和Ada等多种语言。GCC原本作为GNU操作系统的官方编译器,现已被大多数类Unix操作系统(如Linux、BSD、Mac OS X等)采纳为标准的编译器,现在GCC同样适用于微软的Windows。        GCC的编译
原创
发布博客 2016.01.19 ·
1345 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

《C++Primer 5e》学习笔记(6):类

1.定义在类内部的函数是隐式的inline函数。2.成员函数通过this隐式参数来访问调用它的那个对象。当我们调用一个成员函数时,用请求该函数的对象的地址去初始化this。3.this的目的是总指向“这个”对象,所以默认情况下this的类型是指向类类型非常量版本的常量指针,我们不允许改变this中保存的地址。这也意味着this不能绑定到一个常量对象上,从而导致我们不能在一个常量对象上调用普通的成员函数。C++允许我们把const关键字放在成员函数的参数列表后,以紧跟在参数列表之后的const来表示thi
原创
发布博客 2016.01.07 ·
1176 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

《C++Primer 5e》学习笔记(5):函数

1.函数的调用完成两项工作:一是用实参初始化函数对应的形参,二是将控制权转移给被调用的函数。此时,主调函数的执行被暂时中断,被调函数开始执行。2.函数定义规定了实参与形参存在的对应关系,但是并没有规定实参的求值顺序。编译器能以任意可行的顺序对形参进行求值。3.函数的返回值不能是数组类型或函数类型,但可以是指向数组或函数的指针。4.局部静态对象在程序执行路径第一次经过对象定义语句时初始化
原创
发布博客 2016.01.06 ·
869 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

《C++Primer 5e》学习笔记(4):语句

1.表达式语句的作用是执行表达式并丢弃掉求值结果。2.复合语句(也被称作块)是指用花括号括起来的语句和声明的序列,一个块就是一个作用域。3.case关键字和它对应的值一起被称为case标签。case标签必须是整型常量表达式。任何两个case标签都不能相同,否则会引发错误。4.switch执行时如果跳过了某个特定的case,则switch结构中该case标签之前的部分会被忽略掉。5.
原创
发布博客 2015.12.29 ·
882 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

《C++Primer 5e》学习笔记(3):表达式

1.函数调用也是是一种特殊的运算符,他对运算对象的数量没用限制。2.C语言中便于记忆有“左值可以位于赋值语句的左侧,右值不能”的说法。在C++语言中,一个左值表达式的求值结果是一个对象或者一个函数,然而以常量对象为代表的某些左值实际上不能作为赋值语句的左侧运算对象。此外,虽然某些表达式的求值结果是对象,但他们是右值而不是左值。可以做一个简单的归纳:当一个对象被用作右值的时候,用的都是对象的值(
原创
发布博客 2015.12.29 ·
847 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

《C++Primer 5e》学习笔记(2):字符串、向量和数组

1.作用域操作符(::)的含义:编译器应从操作符左侧名字所示的作用域中寻找右侧那个名字。当左侧名字为空时即为全局变量。2.对于using声明:每个名字都需要有独立的using声明,且头文件中不应包含using声明。3.标准库类型string(string是一个类)需要有头文件#include 和命名空间using std::string;4.getline(is,s)函数的
原创
发布博客 2015.12.25 ·
822 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

BFPTR算法(中位数的中位数算法)求n个数中第k大的数

BFPTR算法求n个数中第k大(即第n-1-k小)的数,其思想是基于快速排序中对Partion的pivot值进行优化,快速排序中每一趟快排的pivot的选取一般是数组的首项或者尾项(数值比较随机),而BFPTR是每次选择5分中位数的中位数作为pivot进行下一趟快速排序的,这样做可以使算法的时间复杂度由最坏的O(n^2)变为O(n).实现代码如下:#include using names
原创
发布博客 2015.12.24 ·
5084 阅读 ·
3 点赞 ·
2 评论 ·
8 收藏

《C++Primer 5e》学习笔记(1):变量和基本类型

1.类型转换:(1)当我们赋给无符号类型一个超出它表示范围的值时,结果是初始值对无符号类型表示数值总数取模后的余数。例如,8比特大小的unsigned char 可以表示0到255区间内的值,如果我们赋了270,结果就是270%256=14.(2)当我们赋给带符号类型一个超出它表示范围的值时,结果是未定义的(undefined)。2.初始化不是复制,初始化的含义是创建变量时赋予一个初始
原创
发布博客 2015.12.23 ·
869 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

基数排序

在基数排序之前,我们先来看一下计数排序:计数排序是一个非基于比较的排序。它的优势在于对一定范围内的整数排序时,它的时间复杂度为O(n+k)(其中k为整数的范围),快于任何比较排序算法。计数排序的基本思想就是对每一个输入元素x,确定出小于x的元素的元素的个数,有了这一信息就可以把x归位了。例如,如果数组有6个元素比x小,那么x归为后几位数组中的第7个元素。实现代码如下:/*Au
原创
发布博客 2015.12.22 ·
690 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

归并排序

归并排序是多次将两个或两个以上的有序表合并成一个新的有序表。其每趟归并产生的有序区间只是局部有序,也就是说,在最后一趟排序结束前,所有元素不一定归为。实现代码如下:/*Author:IbsenData:2015.12.22*///归并排序:时间O(n*logn),空间O(n),稳定#include #include using namespace std;int R[]={
原创
发布博客 2015.12.22 ·
651 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

常用排序汇总

常用排序有:1.插入排序(直接插入排序,折半插入排序,希尔排序)2.交换排序(冒泡排序,快速排序)3.选择排序(直接选择排序,堆排序)4.归并排序5.基数排序/*Author:IbsenData:2015.12.21*///排序汇总(插入排序(3种),交换排序(2种),选择排序(2种))#include using namespace std;in
原创
发布博客 2015.12.21 ·
1117 阅读 ·
1 点赞 ·
0 评论 ·
3 收藏

哈希表的常用操作:创建、插入、查找、删除

/*Author:IbsenData:2015.12.21*///哈希表的创建、插入、查找、删除(保留余数法建表,线性探查法解决哈希冲突哈希冲突)#include using namespace std;const int M=1000; //定义哈希表最大长度const int P=13; //保留余数法的除数typedef struct node{ int key;
原创
发布博客 2015.12.21 ·
13460 阅读 ·
13 点赞 ·
1 评论 ·
97 收藏

二叉搜索树(BST)的常用操作:建树、插入、查询、删除、排序打印

/*Author:IbsenData:2015.12.21*///二叉搜索树:建树,插入,删除,排序输出.#include #include using namespace std;const int M=1000; //数据大小int A[M]={5,2,1,6,7,4,8,3,9},n=9;typedef struct node{ int key; //关键字
原创
发布博客 2015.12.21 ·
1986 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

二叉树的构造

我们假设二叉树中每个节点的值都不相同,那么二叉树具有唯一的先序序列、中序序列、后序序列(注意不同的二叉树可能有相同的先序、中序、后序序列)。引入如下两个定理(数学归纳法很容易可以证明,这里不给出证明):1.任何n(n≥0)个不同节点的二叉树,都可由它的中序序列和先序序列唯一确定。1.任何n(n≥0)个不同节点的二叉树,都可由它的中序序列和后序序列唯一确定。给出二叉树的两个序列,返回
原创
发布博客 2015.12.15 ·
670 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

二叉树中根结点到某节点的路径(求某结点的所有祖先)

假设二叉树用二叉链存储结构:1.对于“找出根结点到叶子节点之间的路径”提供两种不同的算法:用栈辅助的基于后序非递归遍历的算法,和用队列辅助的基于层次遍历的算法。2.对于某一给定的节点,求出它的所有祖先:递归求解。具体实现代码如下:#include using namespace std;const int M=1000;typedef struct node{ c
原创
发布博客 2015.12.15 ·
6335 阅读 ·
2 点赞 ·
1 评论 ·
15 收藏

二叉树常用操作(创建、查找、求高度、遍历、打印)

/*Author:IbsenData:2015.12.15*///二叉树创建、查找、求高度、7种遍历、打印输出#include #include #include using namespace std;const int M=1000; //定义节点最大值//定义链式存储结构typedef struct node{ char data; //数据元素 struc
原创
发布博客 2015.12.15 ·
1854 阅读 ·
0 点赞 ·
0 评论 ·
4 收藏

Python解析已下载html文件

离线解析百度百科中的“百度百科”,提取各级标题:#encoding:UTF-8#_Author_:Ibsenimport urllib2from sgmllib import SGMLParser class ListName(SGMLParser): def __init__(self): SGMLParser.__init__(self) self.is_h1=F
原创
发布博客 2015.12.06 ·
2834 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

C++链接MySQL数据库实例应用

应用需求:将目录表(含有id(编号),tablename(物种表),kind(该表中物种所属的类)等属性))中含有的每个物种表(含有id(编号),name(物种名)等)中所有的物名读出,并插入表keywords(含有id(编号),name(物名),keyword(该物种所属类的编号))中。c++实现代码如下:/*Author:IbsenDate:2015.12.06*/#inclu
原创
发布博客 2015.12.06 ·
684 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

C++链接MySQL数据库查询操作

查询lybk表中的wordname列:/*Author:IbsenDate:2015.12.03*/#include #include #include MYSQL mysql;MYSQL_RES *res; //返回行的一个查询结果MYSQL_ROW column; //一个行数据的类型安全(type-safe)的表示,表示数据行的列MYSQL_FIELD *fd; //
原创
发布博客 2015.12.04 ·
1217 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

windows-VC++6.0环境下C++链接MySQL数据库

偶然的一次经历,连我都开始玩数据库了,悲催啊.........好了废话不说了,直接进入主题。      这里我用的是VC++6.0链接数据库:首先导入链接数据库所需的头文件和库文件:工具(T) ==>选项(O) ==>目录,进入下列界面:在"Include files"下添加添加头文件include和库文件lib/opt的路径,即图中路径后两行:然后
原创
发布博客 2015.12.03 ·
1343 阅读 ·
1 点赞 ·
0 评论 ·
4 收藏
加载更多