自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 ACM学习历程24——最大回文子串

回文串是指存在这样一种字符串,正读和反读所得到的结果都是一样的,例如1234321,无论正读和反读得到的都是一样的序列。最大回文子串问题是字符串操作的基本类型之一,求解字符串的最大回文字符串要求从一个字符串中找出存在的最大长度的回文子串。求解字符串的最大回文子串的思路有如下两种,当然不限于这两种方法,在后面将介绍其他算法思想。一、若字符串的长度为N,定义变量i和变量j,其中i的范围为0#i

2016-08-31 21:08:42 1045

原创 ACM学习历程23——最小周期串问题

最小周期串问题属于字符串操作的基本题型之一,要求给定一个字符串找出其中最小的周期长度和最小周期子串。对于周期串的定义如下:如果一个字符串是以一个或者一个以上的长度为K的重复字符串连接成的,那么这个字符串就叫做周期为K的串。找最小周期串的方法可以通过以下方式实现:一、从字符串的起始位置遍历,对于字符串长度为N的字符串,那么周期串的可能长度介于1—N之间,所以可以假设周期串的长度为i,其中1#

2016-08-30 19:31:07 3107

原创 ACM学习历程22——进制转换

一、十进制转N进制/* 函数功能:十进制数转换成N进制数*/#include#include#includeusing namespace std;//将十进制data转换成N进制string TransToN(int data,int n){ string result=""; int index=0,i,j,temp[64]; if(data==0) { r

2016-08-28 21:50:06 736

原创 ACM学习历程21——各种排列组合问题

在这篇博文中,介绍关于1—N和整型数组的排列算法,这些算法的主要用到了递归的思想,即在函数或子过程的内部直接或者间接调用自己的算法。递归算法解决问题的特点在于:递归本身就是在子过程或者函数里调用自身;在使用递归策略时,必须有一个明确的递归结束条件,也就是不存在死递归。当然递归的缺点也是明显的,递归算法虽然间接但是算法求解的运行效率较低。同时在递归调用的过程中系统为每一层的返回点、局部变量等开辟了栈

2016-08-28 20:19:55 4274 1

原创 ACM学习历程20——竞赛中的简单数学问题之最大公约数、素数表、排列组合数

一、求解最大公约数和最小公倍数#includeusing namespace std;int main(){ int a,b,t; cin>>a>>b; t=a>b?a:b; for(;t>=1;t--) { if(a%t==0 && b%t==0) break; } cout<<"The greatest common divisor:"<<t<<endl;

2016-08-27 22:27:33 961

原创 ACM学习历程19——queue队列容器与priority_queue优先队列容器

Queue是一种实现了一个先进先出的线性表,它的插入操作只能在队尾进行,删除操作只能在队首进行,使用queue前需要需要加入头文件。queue容器的使用:(一)创建queue对象:queue类型>对象;queue  q;(二)常用的queue操作:(1)back():读取队尾元素;(2)empty():如果队列空则返回真;(3)front():读取队首元素;(4)p

2016-08-27 19:47:49 642

原创 ACM学习历程18——stack堆栈容器

Stack堆栈容器是一种实现了先进后出的线性表,它的插入和删除操作只能在栈顶实现。前面的博文中已经说过了,容器适配器包括:queue、stack、priority_queue这些适配器都是包装了vector、list、deque中某个顺序容器的包装器,将一些基础容器转换成自己的容器。值得注意的是,适配器没有提供迭代器,不能同时插入和删除多个元素。使用stack前需要引入头文件。(一)sta

2016-08-26 20:59:09 1153

原创 ACM学习历程17——bitset位集合容器

Bitset容器是用来存放bit位元素的,每个元素只占1bit位,取值为0或者1,因而比较节约存储空间,bitset提供了多种方法操作位容器,使用前添加头文件即可使用。(一)创建bitset对象:bitset b,b为bitset对象,它能容纳1000个bit位,每个元素初值为0。注:bitset的大小定义时必须确定,并且定义后也不能修改。(二)设定元素的值:(1)下标法,b[

2016-08-26 20:05:37 1958

原创 ACM学习历程16——List链表的应用之简单约瑟夫问题

约瑟夫问题是list链表的应用之一,问题描述:N个人围成一个圆圈,每个人都有唯一的一个编号,编号从1到N,从编号为1的人开始报数,依次报到K,报数为K的人出列,他的下一个又从1开始报数,直到所有的人都出列,求这个出列的序列。结合上一篇博客,这里使用list链表,给出一个可行的解答代码。注:n为人数,p为要报的数。#include#includeusing namespace std;

2016-08-25 21:42:58 1955

原创 ACM学习历程15——list双向链表容器

List容器是一种实现了双向链表的数据结构,它的每个节点都含有前驱元素指针域、数据域、后继元素指针域。不同于数组这样的线性表,由于list元素的前驱和后继都是靠指针来链接,因此在链表的任意位置进行元素的插入、删除和查找操作速度是较快的。由于list对象的结点并不要求在一段连续的内存中,所以对于迭代器,只能通过“++”或者“--”的操作,不能对其进行+N或者-N的操作。List含有丰富的操作,使用前

2016-08-25 21:18:15 875

原创 ACM学习历程14——deque双端队列容器

Deque双端队列容器与Vector向量容器相似,实现了随机访问、尾部插入和头部插入。不同的是deque采用分块的线性存储结构存储数据,此外,deque内部的数据数据机制和执行性能也与vector不同,在前面的博文中已经简述了vector的内存增长机制,因此若是考虑容器元素的内存分配策略和操作性能,deque相对于vector具有一定的优势。使用deque需要引入头文件。deque主要的方法如下:

2016-08-25 19:11:36 654

原创 ACM学习历程13——multimap集合容器

Multimap与Map的功能一样,不同的是Multimap允许插入重复的值,即该集合容器中的数据可以不是唯一的。Multimap的定义和使用如下:(一)添加元素:multimap,int> m;m.insert(pair(“aa",1));m.insert(pair(“bb",2));m.insert(pair(“cc",3));m.insert(pair(“aa",4)

2016-08-25 15:27:27 411

原创 ACM学习历程12——Map映照容器

Map映照容器是一种实现了平衡二叉树的数据结构,Map中每个元素都是一个键值对,且key值是不能重复的,即每个元素的key值都是唯一的。Map容器可以按key检索,使用时引入头文件即可。Map的定义和使用如下:(一)定义: map类型1,类型2>对象名;如:map m;其中,类型1是key的类型,类型2是value的类型。(二)添加元素:(1)方法一:map m

2016-08-25 14:52:11 448

原创 ACM学习历程11——Multiset集合容器的使用

Multise与Set的功能一样,不同的是multise允许插入重复的元素值,也就是说multise容器中的数据可以是不唯一的。Multise提供了许多可供操作的方法,使用时只需要添加头文件即可。Multise的使用:(一)添加元素:multiset s;s.insert(8);s.insert(10);s.insert(6);s.insert(8); 重复元素会插入到

2016-08-25 11:24:41 643

转载 深度学习与计算机视觉系列(5)_反向传播与它的直观理解

深度学习与计算机视觉系列(5)_反向传播与它的直观理解 <div class="article_manage clearfix"> <div class="article_l"> <span class="link_categories"> 标签: <a href="http://

2016-08-25 10:38:02 642

转载 深度学习与计算机视觉系列(4)_最优化与随机梯度下降

作者:寒小阳 时间:2015年12月。 出处:http://blog.csdn.net/han_xiaoyang/article/details/50178505 声明:版权所有,转载请联系作者并注明出处1. 引言上一节深度学习与计算机视觉系列(3)_线性SVM与SoftMax分类器中提到两个对图像识别至关重要的概念:用于把原始像素信息映射到不同类别得分的得分函数/score functi

2016-08-25 10:36:08 760

转载 深度学习与计算机视觉系列(3)_线性SVM与SoftMax分类器

作者: 寒小阳 时间:2015年11月。 出处:http://blog.csdn.net/han_xiaoyang/article/details/49999299 声明:版权所有,转载请注明出处,谢谢。1. 线性分类器在深度学习与计算机视觉系列(2)我们提到了图像识别的问题,同时提出了一种简单的解决方法——KNN。然后我们也看到了KNN在解决这个问题的时候,虽然实现起来非常简单,但是有很

2016-08-25 10:34:31 1690

转载 深度学习与计算机视觉系列(2)_图像分类与KNN

作者: 寒小阳 时间:2015年11月。 出处:http://blog.csdn.net/han_xiaoyang/article/details/49949535 声明:版权所有,转载请注明出处,谢谢1. 图像分类问题这是人每天自然而然会做的事情,普通到大部分时候,我们都感知不到我们在完成一个个这样的任务。早晨起床洗漱,你要看看洗漱台一堆东西中哪个是杯子,哪个是你的牙刷;吃早餐的时候你要分

2016-08-25 10:31:58 1613

转载 深度学习与计算机视觉系列(1)_基础介绍

作者:寒小阳 时间:2015年11月。 出处:http://blog.csdn.net/han_xiaoyang/article/details/49876119 声明:版权所有,转载请注明出处,谢谢。1.背景计算机视觉/computer vision是一个火了N年的topic。持续化升温的原因也非常简单:在搜索/影像内容理解/医学应用/地图识别等等领域应用太多,大家都有一个愿景『让计算机能够

2016-08-25 10:29:32 571

原创 ACM学习历程10——set集合容器

Set集合容器,是一种实现了平衡二叉树的数据结构,容器中的数据不能重复,即每个数据都是唯一的,而且容器中的数据页数不能直接修改的,因为修改后的数据很可能不在原来的数位上。Set容器的主要目的是快速检索数据元素,减速时采用中序遍历,可将容器内数据由小到大遍历处理。需要注意的是,关联容器的迭代器不支持it+n操作,仅支持it++。Set容器的定义和使用方法如下:(一)Set容器的定义:se

2016-08-25 09:41:00 2350

原创 ACM学习历程9——string基本字符系列容器

在C++中string提供了字符串的添加、删除、替换、查找等丰富的算法,使用时是需要包含头文件即可,因此在需要存储字符串的情况和需要对字符串进行操作时可以考虑使用string类型的变量。下面对string的相关定义和主要操作如下:(一)定义:string s;此时s是一个空串,长度为0;(二)string类型变量的赋值:(1)直接赋值: string s; s=”hello w

2016-08-24 20:09:01 1516 1

原创 ACM学习历程8——Vector应用

Vectors 包含着一系列连续存储的元素,其行为和数组类似。访问Vector中的任意元素或从末尾添加元素都可以在常量级时间复杂度内完成,而查找特定值的元素所处的位置或是在Vector中插入元素则是线性时间复杂度。Vector的方法有如下一些: 应用举例一:输入数据:含有不多于50个的正整数n(0),输出数:对于每个n计算其第n项fibonacci数,每个结果独占一行。输入:6

2016-08-23 21:18:44 555

原创 ACM学习历程7——Vector向量容量扩展机制

Vector向量容器相当于一个动态的数组,当向向量容器中不断加入元素,若超过容器本身的大小限制,vector会自动拓展大小,在这过程中涉及到内存的分配和回收。在vector中有size()和capacity()函数,与之相对应的两个函数resize(size_type)和reserve(size_type)。Size函数是指返回当前容器中的元素个数,对应的resize(size_type)会在容器

2016-08-23 16:14:17 1948

原创 ACM学习历程6——Vector向量容器

Vector向量容器属于第一类容器,支持级访问迭代器,与数组不同的是,向量容器在内存用尽时,会自动分配更大的连续内存区,将原来的元素复制到性的内存区中,并释放旧的内存区。Vector实际上相当于一个动态的数组,随机访问的时间为常数,在尾部添加速度很快,但是在中间插入元素时速度会变慢,这一点跟对数组的操作是一样的,中间插值会设计到数据的移动。(一)在定义Vecotr时,需要给定一个具体的实参类型

2016-08-23 15:07:00 1027

原创 ACM学习历程5——算法设计中常用的函数

STL中有很多可以直接使用的算法,例如在和等头文件中定义了许多方法,这些方法只需要算法设计的过程中加入相应的头文件即可使用,下面介绍一些常用的算法。Sort排序,实际上是快速排序,可以对vector、string、数组等进行排序,缺省情况下sort是升序排列。#include#include#includeusing namespace std;int main(){ v

2016-08-23 15:02:54 1917

原创 ACM学习历程4——STL的使用

在算法设计大赛中,会使用一些语言本身提供的库,在这些库里面包含了大量已经实现了的数据结构或者算法,我们是需要在使用的过程中加入响应的头文件即可使用。标准模板库(Standard Template Library)是ANSI/ISO C++最有特色、最实用的部分之一。STL包含了容器类(container)、迭代器(iterator)和算法(algorithm)三个部分。泛型算法(generic

2016-08-22 21:00:59 725

原创 ACM学习历程3——C与C++输入输出效率的问题

在上面一个博文中介绍了在算法设计大赛中会用到的各类输入输出形式,涉及到的主要语句是C中的scanf和printf以及C++中的cin和cout。事实上,在某些编程题中,有时会出现Time Limited的错误。当出现这种错误时,原因无非以下几种:程序中出现了死循环使得程序无法在规定的时间内完成;算法设计的过于复杂,使用了过多的循环使得程序步执行的次数过多;不合理语句的使用,包括输入输出语句等等

2016-08-22 20:54:32 1886

原创 ACM学习历程2——ACM题目中常用的输入输出方式

由于ACM竞赛题目的输入数据和输出数据一般有多组(不定),并且格式多种多样,所以,如何处理题目的输入输出是对编程者最基本的要求。(一)第一类输入:输入不说明有多少个Input Block,以EOF为结束标志。Example1:Calculate A + B .Input:Each line will contain two integers A and B . Process to

2016-08-22 20:39:29 14146

原创 ACM学习历程1——输入输出语句

在ACM程序设计中通常使用C++语言作为程序的整体框架,主要原因:C++本身兼容了C,一方面它既保持了C的简洁、高效和接近汇编语言的特性,同时也对C类型系统进行了改进和扩充;另一方面,C++也支持面向过程的程序设计,当然它并不是一个纯正的面向对象的语言。此外C++提供了许多可以方面用户编程的工具和丰富的算法库,例如Algorithm库中包含了许多用户可以直接使用的排序、组合等算法,算法的设计人员可

2016-08-22 20:36:31 961

原创 MatLab建模学习笔记14——K-Means聚类算法

互联网的发展带动云计算、虚拟化、大数据等IT新技术的兴起,各行各业的互联网化日趋明显。其中大数据的兴起和发展壮大成为了IT时代或者说信息时代最为典型的特征之一。仅就大数据本身而言,其本身就具有数据体积大、数据多样性、价值密度低、数据更新快等特点。所以,要想获取有价值的信息就必须对数据进行充分有效的挖掘和分析。数据挖掘是指从大量的、不完全、有噪声的、模糊的、随机的数据中,提取隐含在其中的、人们事先不知

2016-08-22 19:50:41 11723 1

原创 MatLab建模学习笔记13——主成分分析(PCA)

主成分分析(Principal Component Analysis,PCA),是一种统计方法。在处理实际问题中,多个变量之间可能存在一定的相关性,当变量的个数较多且变量之间存在复杂的关系时,增加了问题分析的难度。主成分分析是一种数学降维的方法,该方法主要将原来众多具有一定相关性的变量,重新组合成为一种新的相互无关的综合变量。例如,当选择第一个线性组合即第一个综合变量为F1,希望F1能够反映更多的信

2016-08-20 19:55:19 40101 16

原创 常用排序算法汇总

这里主要涉及到的排序算法,包括冒泡排序、选择排序、直接插入排序、快速排序和哈希排序。这里先声明一下,下面的排序算法大多包含了三个输入参数:待排序的数组、数组的成员个数和flag标志,若flag的值为true则标志按照升序排列元素,flag为false则按照降序排列元素。 冒泡排序算法:#include<iostream>using namespace std;typedef int DataT

2016-08-18 16:29:38 487

原创 MatLab建模学习笔记12——Logistic回归模型

logistic regression属于概率型非线性回归,它是研究二分类观察结果与一些影响因素之间关系的一种多变量分析方法。例如,在流行病学研究中,经常需要分析疾病与各危险因素之间的定量关系,为了正确说明这种关系,需要排除一些混杂因素的影响。对于线性回归分析,由于应变量Y是一个二值变量(通常取值1或0),不满足应用条件,尤其当各因素都处于低水平或高水平时,预测值Y值可能超出0~1范围,出现不合理都

2016-08-18 15:55:27 40950 9

原创 MatLab建模学习笔记11——云模型在数据处理中的应用

云模型属于不确定性人工智能范畴,主要用于定性与定量之间的相互转换,自然界中的不确定性从属性角度来说主要有随机性和模糊性。“云”或者“云滴”是云模型的基本单元,“云”是指其在论域上的一个分部,可以用联合概率的形式(x,µ)来类比。基本的定义如下:设X是一个普通集合,X={x} , 称为论域。关于论域X中的模糊集合A,是指对于任意元素x都存在一个有稳定倾向的随机数Ua(x),叫做x对A 的隶属度。如果论

2016-08-17 16:17:39 17967 3

原创 MatLab建模学习笔记10——利用罚函数求解非线性规划问题

它将有约束最优化问题转化为求解无约束最优化问题:其中M为足够大的正数, 起”惩罚”作用,称之为罚因子,F(x, M )称为罚函数。罚函数法求解非线性规划问题的思想是,利用问题中的约束条件做出适当的罚函数,由此构造出带参数的曾广目标函数,并把问题转化为无约束非线性规划问题。传统的罚函数法一般分为外部罚函数法和内部罚函数法。外部罚函数法是从非可行解出发逐渐移动到可行区域的方法。内部罚函数法也称为障碍罚函

2016-08-17 10:44:04 24890 8

原创 MatLab建模学习笔记9——二次规划问题求解

非线性规划的目标函数自变量为x的二次函数约束条件又全是线性的,则称之为二次规划。二次规划的在Matlab中的数学模型可表述如下: 其中,f和b是列向量,A是相应维数的矩阵,H是实对称矩阵。Matlab中求解二次规划的命令是:[X,FVAL]=QUADPROG(H,f,A,b,Aeq,beq,LB,UB,X0,OPTIONS),其中X的返回值是一个向量,FVAL的返回值是目标函数在X处的值。此外,主

2016-08-17 09:58:56 18802 1

原创 MatLab建模学习笔记8——非线性规划问题求解

如果目标函数或者约束函数中包含非线性函数,就称这种规划问题为非线性规划问题。非线性规划是具有非线性约束条件或目标函数的数学规划,是运筹学的一个重要分支。 非线性规划问题的数学模型如下: 其中,f(x)是标量函数,A、B、Aeq、Beq是相应维数的矩阵和向量,C(x)、Ceq(x)是非线性向量函数。在Matlab中求解非线性函数最优解的命令是:X=FMINCON(FUN,X0,A,B,Aeq,Be

2016-08-16 23:04:23 24834

原创 MatLab建模学习笔记7——线性规划问题求解

线性规划(Linear programming,简称LP)是运筹学中研究较早、发展较快、应用广泛、方法较成熟的一个重要分支,它是辅助人们进行科学管理的一种数学方法。研究线性约束条件下线性目标函数的极值问题的数学理论和方法。 线性规划步骤一般如下: (1)列出约束条件及目标函数 (2)画出约束条件所表示的可行域 (3)在可行域内求目标函数的最优解及最优值 线性规划中单纯形法的基本思路:先找出

2016-08-16 21:18:50 6060

原创 MatLab建模学习笔记6——数据拟合方法

曲线拟合也叫曲线逼近,只要求拟合曲线能合理的反映数据的基本趋势,并不要求曲线一定通过数据点。曲线拟合有不同的判别准则,包括偏差的绝对值之和最小、偏差的最大绝对值最小和使偏差的平方和最小(即最小二乘法)。 一、多项式的数据拟合: polyfit(X,Y,N):多项式拟合,返回降幂排列的多项式系数。其中X、Y是数据点的值,N代表最高次幂。 polyval(P,XI):代表返回的多项式系数。其中,P

2016-08-16 15:51:53 17462

原创 华为OJ——记票统计

记票统计题目描述请实现接口:unsigned int  AddCandidate (char* pCandidateName);功能:设置候选人姓名输入: char* pCandidateName 候选人姓名输出:无返回:输入值非法返回0,已经添加过返回0 ,添加成功返回1Void Vote(char* pCandidateName);功能:投票输入: ch

2016-08-14 18:42:24 769

MT7628_LinuxAP_V4.0.1.3_DPA_20150216.tar

给MT7628、MT7688开发板添加WIFI功能

2016-12-17

Linux分区脚本

主要是Linux下分区的脚本

2016-08-20

空空如也

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

TA关注的人

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