自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

AC_Gibson的专栏

while(alive) ACing;

  • 博客(387)
  • 收藏
  • 关注

原创 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 12:16:37 1253

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

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

2016-01-07 20:24:58 1099

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

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

2016-01-06 15:58:15 804

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

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

2015-12-29 18:49:16 824

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

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

2015-12-29 14:40:07 804

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

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

2015-12-25 14:28:18 759

原创 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 19:30:51 5004 2

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

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

2015-12-23 15:35:25 798

原创 基数排序

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

2015-12-22 20:38:00 615

原创 归并排序

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

2015-12-22 20:16:06 558

原创 常用排序汇总

常用排序有:1.插入排序(直接插入排序,折半插入排序,希尔排序)2.交换排序(冒泡排序,快速排序)3.选择排序(直接选择排序,堆排序)4.归并排序5.基数排序/*Author:IbsenData:2015.12.21*///排序汇总(插入排序(3种),交换排序(2种),选择排序(2种))#include using namespace std;in

2015-12-21 14:22:25 1068

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

/*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 13:09:38 13240 1

原创 二叉搜索树(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 11:02:52 1890

原创 二叉树的构造

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

2015-12-15 18:44:34 614

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

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

2015-12-15 15:07:44 6159 1

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

/*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 12:35:38 1774

原创 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 22:22:01 2764

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

应用需求:将目录表(含有id(编号),tablename(物种表),kind(该表中物种所属的类)等属性))中含有的每个物种表(含有id(编号),name(物种名)等)中所有的物名读出,并插入表keywords(含有id(编号),name(物名),keyword(该物种所属类的编号))中。c++实现代码如下:/*Author:IbsenDate:2015.12.06*/#inclu

2015-12-06 12:03:23 621

原创 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 12:17:43 1181

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

偶然的一次经历,连我都开始玩数据库了,悲催啊.........好了废话不说了,直接进入主题。      这里我用的是VC++6.0链接数据库:首先导入链接数据库所需的头文件和库文件:工具(T) ==>选项(O) ==>目录,进入下列界面:在"Include files"下添加添加头文件include和库文件lib/opt的路径,即图中路径后两行:然后

2015-12-03 20:32:31 1300

原创 PyChram使用笔记

PyCharm作为一款夸平台(在Windows,Max OS,Linux下均可使用)的Python IDE,带有相当完整的可以帮助用户在Python语言开发时挺好效率的工具。这里先简单介绍一下安装,注册,以及一些基本的设置。安装首先是下载,可以在官网上进行下载:点击打开链接关于激活码,网上有很多,这里盗来一个:EMBRACE===== LICENSE BEGIN =====

2015-11-26 19:52:02 1792

原创 高斯消元解线性方程组

在线性代数中我们会经常遇到诸如求以下解线性方程组的问题:x1*a11+x2*a12+...xn*a1n=b1x1*a21+x2*a22+...xn*a2n=b2...x1*am1+x2*am2+...xn*amn=bm    我们可以用高斯消元法来求解上述方程组的解,具体实现代码如下:整型系数代码如下:

2015-11-17 12:30:28 642

原创 处理机调度避免死锁之银行家算法

Dijkstra的银行家算法是处理机调度问题中很具有代表性的避免死锁的算法。实现代码如下:#include #include #include #include using namespace std;const int M=100; //表示资源的最大种类const int N=100; //表示进程的最大数目int available[M]; //可利用资源向量int

2015-11-14 16:24:35 871

原创 Linux常用操作指令

这里我用的是CentOS6.5_32bit版本(以下表示中:^为Ctrl键),常用操作指令汇总:A.-.awk '{pattern + action}' {filenames}:文本分析工具。B.-.basename:取得最后的文件名。"basename /etc/sysconfig/network" ==> network。-.bc:计算器。quit退出。C.-.

2015-11-04 13:22:37 779

原创 windows下搭建python+NLTK开发环境

NLTK(Natural Language Toolkit)是python的自然语言处理工具包,其中包含大量的软件,数据和文档。这里我们用windows 32bit的搭建来说。1.首先安装python(这里我用的版本是python3.4.3,目录C:\Python34)在官网上可以下载不同的版本:点击打开链接下载完成后在C:\Python34目录下可以看到python.exe文件,打开

2015-11-02 14:02:45 1184

原创 python常见编译错误:IndentationError缩进错误

Python语言是一款对缩进非常敏感的语言,最长见的编译错误莫过于tab和空格的混用,或者缩进不对所产生的错误,这些错误是很难用肉眼来辨别的。    在编译时会出现这样的错误:IndentationError:expected an indented block 说明此处需要缩进,你只要在出现错误的那一行,按空格或Tab(但不能混用)键缩进就行。(如果上一行以“:”结尾,那么下一行需要空格缩进

2015-11-01 15:22:10 4783

原创 java高精度开平方

import java.util.*;import java.math.*;public class Main{ public static void main(String[] args) { Scanner cin=new Scanner(System.in); int t=cin.nextInt

2015-10-23 09:26:42 1204

原创 高精度除法与求余C++版和java版

高精度除法与求余c++版(除数与被除数100000位):代码如下://高精度除法与求余#include#include#includeusing namespace std;const int M=1e5+5;char s[M],result[M];int main(){ long long mod,divis; int n,i,k,flag,le

2015-10-23 08:57:18 1675

原创 POJ2104 K-th Number 主席树

题目链接:http://poj.org/problem?id=2104题目大意:求区间第k小的数。分析:主席树模板题。实现代码如下:#include#include#define N 100010int T[N];int num[N];int san[N];int ls[N*20];int rs[N*20];int sum[N*20];

2015-10-23 08:48:50 416

原创 POJ3107 Godfather 求树的重心

题目链接:http://poj.org/problem?id=3107题目大意:求树的重心,如果有多个节点,按节点编号升序输出所有的。分析:用vector存储图会TLE,这里用了前向星存储图,用set来记录节点可以省去排序(set是一颗二叉树,自动把加入的点按升序排列了)。实现代码如下:#include #include #include #inclu

2015-10-22 16:19:07 577

原创 HDU3534 Tree 求树的直径及其个数

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3534题目大意:给出一颗n个节点的树,每条边对应一个长度,求出距离最大的两个节点之间长度,并找出一共有多少个顶点对。实现代码如下:/*求最长边的时候可以统计一下最长边的个数,那么以u为根节点的子树中最长边为:Len[u]+max(len[v]),个数node[u]*nod

2015-10-22 13:06:43 2524 1

原创 POJ1655 Balancing Act 求树的重心

题目链接:http://poj.org/problem?id=1655题目大意:树的重心:找到一个点作为新的树根,其所有的子树中最大子树的节点数最少,那么这个点就是这个树的重心。树的重心的意义在于,删去重心后,生成的多棵树尽可能平衡。分析:一次搜索即可。DFS每一个点s,找出其各个子树的节点数,纪录最大值son[s],然后比较balance=max(son[s],n-son

2015-10-22 10:59:43 450

原创 HDU4089 Activation 概率DP

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4089ActivationTime Limit: 20000/10000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2382    Accepted Subm

2015-10-21 11:27:12 539

原创 HDU4734 F(x) 数位DP

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4734题目大意:我们定义十进制数x的权值为f(x) = a(n)*2^(n-1)+a(n-1)*2(n-2)+...a(2)*2+a(1)*1,a(i)表示十进制数x中第i位的数字。题目给出a,b,求出0~b有多少个不大于f(a)的数。实现代码如下:/**求给定区间1~B中

2015-10-21 10:10:03 1083

原创 HDU3853 LOOPS 概率DP

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3853题目大意:有一个R*C的迷宫,开始点在[1,1],现在要走到[r,c],对于在点[x,y]可以消耗2点魔力打开一扇门,走到[x,],[x+1,y],[x,y+1],的概率分别为p0,p1,p2,问走到[r,c]点时消耗魔力的期望值。分析:我们用dp[i][j]表示在点[

2015-10-20 21:59:40 410

原创 HDU3709 Balanced Number 数位DP

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3709题目大意:定义平衡数:以一个数的某一位为支点,其左右各个位分别乘以力矩的和是相等的。比如4139这个数,我们以3为力矩,左边的力矩和为4*2+1*1=右边的力矩和9*1。下载给出一个区间[l,r](0分析:数位DP。我们用dp(i,j,k)来表示以第j位为支点的力矩和为k时

2015-10-20 21:39:11 406

原创 HDU3555 Bomb 数位DP

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3555题目大意:统计区间[1,n](n分析:我们可以先统计区间[1,n]内不含49的数的个数,然后拿n减去即可。实现代码如下://数位DP,统计区间[n,m]内含有49的数的个数#include #include #include using namesp

2015-10-20 21:12:43 403

原创 BZOJ1026 windy数 数位DP

题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1026题目大意:windy定义了一种windy数。不含前导零且相邻两个数字之差至少为2的正整数被称为windy数。 windy想知道,在A和B之间,包括A和B,总共有多少个windy数?分析:数位DP,定义dp(i,j)为高一位为j的i位数中满足题意的数的个数。

2015-10-20 19:39:04 978

原创 URAL1057 Amount of Degrees 数位DP

题目链接:http://acm.timus.ru/problem.aspx?space=1&num=1057题目大意:统计区间[x,y]内可以用k个不同的b进制数的和来表示的数的个数。分析:参考论文《浅谈数位类统计问题》。我们先来看该问题的简化版:统计区间[0,n]内可以用k个不同的二进制数的和来表示的数的个数。那么对于n=13(二进制位1101),k=3的情况,我们只需要

2015-10-20 16:18:29 439

原创 HDU5179 beautiful number 数位DP

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5179题目大意:找出[l,r]中高位数字可以整除低位且不小于低位数字的数的个数。实现代码如下:#include #include #include #include using namespace std;int dp[25][25][3];int bi

2015-10-19 20:33:30 505

空空如也

空空如也

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

TA关注的人

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