自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

kaggle expert,全球排名前1000,清华计算机研究生,兴趣算法工程

kaggle expert,全球排名前1000,清华计算机研究生,兴趣算法工程

  • 博客(112)
  • 资源 (4)
  • 收藏
  • 关注

原创 蓝桥杯最大乘积

问题描述  对于n个数,从中取出m个数,如何取使得这m个数的乘积最大呢?输入格式  第一行一个数表示数据组数  每组输入数据共2行:  第1行给出总共的数字的个数n和要取的数的个数m,1,  第2行依次给出这n个数,其中每个数字的范围满足:a[i]的绝对值小于等于4。输出格式  每组数据输出1行,为最大的乘积。样例输入15 51 2 3 4 2样

2016-10-30 17:33:03 667

原创 蓝桥杯一元三次方程求解

问题描述  有形如:ax3+bx2+cx+d=0这样的一个一元三次方程。给出该方程中各项的系数(a,b,c,d均为实数),并约定该方程存在三个不同实根(根的范围在-100至100之间),且根与根之差的绝对值>=1。要求三个实根。。输入格式  四个实数:a,b,c,d输出格式  由小到大依次在同一行输出这三个实根(根与根之间留有空格),并精确到小数点后2位样例输入

2016-10-30 16:21:22 6790 3

转载 c++中sort()的用法

C++sort()函数的用法近来看了c++标准库这本书,学到了很多,就把这其中的一点C++sort()函数的用法写下来和大家分享吧!(一)为什么要用c++标准库里的排序函数Sort()函数是c++一种排序方法之一,学会了这种方法也打消我学习c++以来使用的冒泡排序和选择排序所带来的执行效率不高的问题!因为它使用的排序方法是类似于快排的方法,时间复杂度为n*log2(n),执行效率较高!(二)c++

2016-10-30 14:08:04 2669

原创 蓝桥杯基础练习十六进制转十进制

问题描述  从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。  注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。样例输入FFFF样例输出655351. #include2. #include 3. #include4. int main()5. { 6. double sum=0,x;7. cha

2016-10-30 13:01:50 442

原创 蓝桥杯基础练习字母图形

问题描述利用字母可以组成一些美丽的图形,下面给出了一个例子:ABCDEFGBABCDEFCBABCDEDCBABCDEDCBABC这是一个5行7列的图形,请找出这个图形的规律,并输出一个n行m列的图形。输入格式输入一行,包含两个整数n和m,分别表示你要输出的图形的行数的列数。输出格式输出n行,每个m个字符,为你的图形。样例输入5 7样例输出

2016-10-30 10:57:25 387

原创 蓝桥杯入门训练Fibonacci数列

问题描述Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。输入格式输入包含一个整数n。输出格式输出一行,包含一个整数,表示Fn除以10007的余数。说明:在本题中,答案是要求Fn除以10007的余数,因此我们只要能算出这个余

2016-10-30 09:56:22 416

原创 蓝桥杯入门训练圆的面积

问题描述给定圆的半径r,求圆的面积。输入格式输入包含一个整数r,表示圆的半径。输出格式输出一行,包含一个实数,四舍五入保留小数点后7位,表示圆的面积。说明:在本题中,输入是一个整数,但是输出是一个实数。对于实数输出的问题,请一定看清楚实数输出的要求,比如本题中要求保留小数点后7位,则你的程序必须严格的输出7位小数,输出过多或者过少的小数位

2016-10-30 09:54:30 355

原创 蓝桥杯入门训练序列求和

问题描述求1+2+3+...+n的值。输入格式输入包括一个整数n。输出格式输出一行,包括一个整数,表示1+2+3+...+n的值。样例输入4样例输出10样例输入100说明:有一些试题会给出多组样例输入输出以帮助你更好的做题。一般在提交之前所有这些样例都需要测试通过才行,但这不代表这几组样例数

2016-10-30 09:12:06 492

原创 图算法学习

虽然之前就了解了很多图算法,但今天才彻底实现了大部分算法的代码。这其中比较重要的有图搜索的广搜,深搜算法,以及在迷宫中,在城市地图中,和floodfill的应用。还有求单源最短路径的Floyd-Warshall,Dijkstra,Bellman-Ford算法,还学了最小生成树的算法。感觉收获不小

2016-10-28 22:58:02 446

原创 了解数据挖掘

1763 年,Thomas Bayes 的论文在他死后发表,他所提出的 Bayes 理论将当前概率与先验概率联系起来。因为 Bayes 理论能够帮助理解基于概率估计的复杂现况,所以它成为了数据挖掘和概率论的基础。1805 年, Adrien-Marie Legendre 和 Carl Friedrich Gauss 使用回归确定了天体(彗星和行星)绕行太阳的轨道。回归分析的目标是估计变量之

2016-10-27 09:13:26 1073

转载 字符串算法-BMH

BMH算法全称是Boyer-Moore-Horspool算法。它不再像BM算法一样关注失配的字符,它的关注的焦点在于匹配文本每一次匹配失败的最后一个字符X,根据这个字符X是否在模板出现过来决定跳跃的步数,否则跳跃模板的长度。所以分了两种情况:一:字符X不在模板P中,则跳跃的步数为模板P的长度二:字符X在模板P中,跳跃的步数为字符X距离离尾部最近的字符X的距离(不

2016-10-23 12:44:33 2297

转载 字符串算法-Rabin-Karp

Go 语言的 strings 包(strings.go)中用到了 Rabin-Karp 算法。Rabin-Karp 算法是基于这样的思路:即把字符串看作是字符集长度进制的数,由数值的比较结果得出字符串的比较结果。  朴素的字符串匹配算法为什么慢?因为它太健忘了,前一次匹配的信息其实有部分可以应用到后一次匹配中去,而朴素的字符串匹配算法只是简单的把这个信息扔掉,从头再来,因此,浪费了时间。好好的

2016-10-23 12:16:29 328

原创 搜索算法-搜索的优化

一些搜索的优化方法:1.爬山法2.Best-First法3.分支界限法爬山法:1.在深度优先搜索过程中,我们经常遇到多个节点可以拓展的情况,首先拓展哪个就需要一种方法;2.爬山策略使用贪心法确定搜索的方向,是优化的深度优先搜索策略3.爬山搜索使用启发式测度来排序节点拓展的顺序,也就是说要有测度函数,在8-puzzle问题中测度函数是结点中处于错误位置的方块数。

2016-10-22 16:05:13 974

原创 搜索算法-广度优先和深度优先搜索

Breadth-First Search算法:1.构造由根组成的队列Q;2.if Q 的第一个元素x是目标结点then 停止;3.从Q中删除x,把x的所有子节点入队;4.if Q 空 then 失败,else goto 2;Depth-First Search算法:1.构造由根组成的栈S;2.if 栈顶是目标节点,then 停止;3.栈顶出栈

2016-10-22 15:50:38 418

原创 搜索算法-三个简单的小问题

看到了一些搜索的小问题,总结如下:1.布尔表达式可满足性问题输入:n个布尔变量,关于他们的k个析取布尔式 输出:是否存在一个他们的一种赋值,使得所有k个布尔析取式皆为真通过不断地为他们分类来建立树,每一层多增加一个变量,每个儿子都有T和F两种取值可能。2.8-Puzzle问题输入:具有八个编号的小方块的魔方的一面输出:经过移动使得数字的排列具有某种性质”也是

2016-10-22 15:49:13 557

原创 javascript的jQuery库小结(1)

去年断断续续学了html,css,js,虽然写了几个小网页,但连SQL和比较强大的jQery库都没用到,还是比较low。再不复习都生疏了,所以这段时间想总结一下知识,写一个比较漂亮的网站玩玩。引用 jQueryjQuery 描述主要的 jQuery 函数是 $() 函数(jQuery 函数)。如果您向该函数传递 DOM 对象,它会返回 jQu

2016-10-19 23:36:35 401

原创 STL总结(1)

1.栈(Stack):#includestack stack1; //在是默认以deque为容器的stack1.push(element);stack1.pop(); stack1.empty(); //是否为空stack1.size(); //元素个数stack1.top(); //判断是否为栈顶元素2.队列(Queue) #includ

2016-10-16 19:10:36 399

转载 大学里

每个安慰你挂科算什么的人最后都默默拿了奖学金;每个夸你肥嘟嘟的脸好可爱的人,最后都瘦成了万人迷;每个在你面前说自己前途渺茫的人,最后都身家过亿;只有你,在满床的薯片袋和电脑荧光照射下,淬炼成一朵SB 。你要是天天一大早六点起床,吃顿好饭,奔去教室背两篇新三,八点坐直在教室的前排,使劲不分心不玩手机地听完三节还是四节课,课间练字背单词看报纸,放学奔去食堂抢份好

2016-10-16 19:02:53 507

原创 C语言画心

作为资深笑点寻觅者,今天发现了个很好玩的程序分享给大家~~画心的C语言#include int main() { for (float y = 1.5; y > -1.5; y -= 0.1) { for (float x = -1.5; x < 1.5; x += 0.04) { float a = x * x + y * y - 1;

2016-10-16 18:53:05 10307 7

原创 学习记录-网络基础知识(1)

1.网络的拓扑结构:总线结构,星形结构,环形结构,树形结构,分布式结构。2.国际化标准组织(ISO)提出了开放系统互联(OSI)参考模型,它是一个定义异种计算机连接标准的框架结构,共有七层:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层。3.物理层互联设备:中继器,集线器。4.数据链路层互联设备:网桥,交换机。5.网络层互联设备:路由器。6.应用层互联设备:网关

2016-10-16 15:33:28 517

原创 网络流-基本原理

•(1) 网络•G是一个简单有向图,G=(V,E),V={1,2,…,n}。•在V中指定一个顶点s,称为源和另一个顶点t,称为汇。•有向图G的每一条边(v,w)∈E,对应有一个值cap(v,w)≥0,称为边的容量。•这样的有向图G称作一个网络。•(2) 网络流•网络上的流是定义在网络的边集合E上的一个非负函数flow={flow(v,w)},并称flow(v,w)为边(

2016-10-16 15:30:28 1905

原创 随机化算法-数值随机化算法

随机数随机数在随机化算法设计中扮演着十分重要的角色。在现实计算机上无法产生真正的随机数,因此在随机化算法中使用的随机数都是一定程度上随机的,即伪随机数。线性同余法是产生伪随机数的最常用的方法。由线性同余法产生的随机序列a0,a1,…,an满足其中b³0,c³0,d£m。d称为该随机序列的种子。如何选取该方法中的常数b、c和m直接关系到所产生的随机序列的随机性能。从直观上看,

2016-10-16 15:09:23 3130

原创 回溯-基本原理

有许多问题,当需要找出它的解集或者要求回答什么解是满足某些约束条件的最佳解时,往往要使用回溯法。回溯法的基本做法是搜索,或是一种组织得井井有条的,能避免不必要搜索的穷举式搜索法。这种方法适用于解一些组合数相当大的问题。回溯法在问题的解空间树中,按深度优先策略,从根结点出发搜索解空间树。算法搜索至解空间树的任意一点时,先判断该结点是否包含问题的解。如果肯定不包含,则跳过对该结点为根的

2016-10-16 14:35:38 972

原创 贪心-多机调度问题

多机调度问题要求给出一种作业调度方案,使所给的n个作业在尽可能短的时间内由m台机器加工处理完成。约定,每个作业均可在任何一台机器上加工处理,但未完工前不允许中断处理。作业不能拆分成更小的子作业。  这个问题是NP完全问题,到目前为止还没有有效的解法。对于这一类问题,用贪心选择策略有时可以设计出较好的近似算法。采用最长处理时间作业优先的贪心选择策略可以设计出解多机调度问题

2016-10-16 14:32:02 2645

原创 贪心-最小生成树

1.用贪心算法设计策略可以设计出构造最小生成树的有效算法。这里介绍的构造最小生成树的Prim算法和Kruskal算法都可以看作是应用贪心算法设计策略的例子。尽管这2个算法做贪心选择的方式不同,它们都利用了下面的最小生成树性质:  设G=(V,E)是连通带权图,U是V的真子集。如果(u,v)ÎE,且uÎU,vÎV-U,且在所有这样的边中,(u,v)的权c[u][v]最小,那么一定存在G的一棵最小

2016-10-16 14:23:38 614

原创 贪心-单源最短路径

给定带权有向图G =(V,E),其中每条边的权是非负实数。另外,还给定V中的一个顶点,称为源。现在要计算从源到所有其它各顶点的最短路长度。这里路的长度是指路上各边权之和。这个问题通常称为单源最短路径问题。1、算法基本思想  Dijkstra算法是解单源最短路径问题的贪心算法。其基本思想是,设置顶点集合S并不断地作贪心选择来扩充这个集合。一个顶点属于集合S当且仅当从源到该顶点的最短路

2016-10-16 14:20:17 719

原创 动态规划-矩阵连乘问题

给定n个矩阵,其中与 是可乘的,   。考察这n个矩阵的连乘积   由于矩阵乘法满足结合律,所以计算矩阵的连乘可以有许多不同的计算次序。这种计算次序可以用加括号的方式来确定。若一个矩阵连乘积的计算次序完全确定,也就是说该连乘积已完全加括号,则可以依此次序反复调用2个矩阵相乘的标准算法计算出矩阵连乘积算法复杂度分析:对于n个矩阵的连乘积,设其不同的计算次序为P(n

2016-10-16 10:48:21 796

原创 动态规划-基本思想

·掌握动态规划算法的基本要素·(1)最优子结构性质·(2)重叠子问题性质·掌握设计动态规划算法的步骤。·(1)找出最优解的性质,并刻划其结构特征。·(2)递归地定义最优值。·(3)以自底向上的方式计算出最优值。·(4)根据计算最优值时得到的信息,构造最优解。动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题但是经分解得到的子问

2016-10-16 10:13:29 741

原创 算法学习小小目标

主要是系统地学习常见的几个重要算法1.递归 2.分治3. 动态规划 4.贪心 5.回溯6.分支限界法7.线性规划8.网络流9.随机化算法然后开启第二重模式

2016-10-16 10:12:29 395

原创 分治-最接近点问题

u为了使问题易于理解和分析,先来考虑一维的情形。此时,S中的n个点退化为x轴上的n个实数 x1,x2,…,xn。最接近点对即为这n个实数中相差最小的2个实数。Ø假设我们用x轴上某个点m将S划分为2个子集S1和S2 ,基于平衡子问题的思想,用S中各点坐标的中位数来作分割点。Ø递归地在S1和S2上找出其最接近点对{p1,p2}和{q1,q2},并设d=min{|p1-p2|,|q1-q2|

2016-10-16 09:26:31 671

原创 分治-寻找第k小的数

给定线性序集中n个元素和一个整数k,1≤k≤n,要求找出这n个元素中第k小的元素templateType RandomizedSelect(Type a[],int p,int r,int k){ if (p==r) return a[p]; int i=RandomizedPartition(a,p,r), j=i-p+1; if (k

2016-10-16 08:56:59 3466

原创 分治法-快速排序

在快速排序中,记录的比较和交换是从两端向中间进行的,关键字较大的记录一次就能交换到后面单元,关键字较小的记录一次就能交换到前面单元,记录每次移动的距离较大,因而总的比较和移动次数较少。templatevoid QuickSort(Type a[], int p, int r){ if (p<r) { int q=Partition(a,p,r);

2016-10-16 08:47:39 1025

原创 分治-归并排序

基本思想:将待排序元素分成大小大致相同的2个子集合,分别对2个子集合进行排序,最终将排好序的子集合合并成为所要求的排好序的集合。 void MergeSort(Type a[],int left,int right)  {      if(left至少有2个元素      inti=(left+right)/2;  //取中点     

2016-10-16 08:47:01 352

原创 分治-棋盘覆盖

在一个2k×2k个方格组成的棋盘中,恰有一个方格与其它方格不同,称该方格为一特殊方格,且称该棋盘为一特殊棋盘。在棋盘覆盖问题中,要用图示的4种不同形态的L型骨牌覆盖给定的特殊棋盘上除特殊方格以外的所有方格,且任何2个L型骨牌不得重叠覆盖。当k>0时,将2k×2k棋盘分割为4个2k-1×2k-1子棋盘(a)所示。特殊方格必位于4个较小子棋盘之一中,其余3个子棋盘中无特

2016-10-16 08:28:20 429

原创 分治-Strassen矩阵乘法

A和B的乘积矩阵C中的元素C[i,j]定义为: 若依此定义来计算A和B的乘积矩阵C,则每计算C的一个元素C[i][j],需要做n次乘法和n-1次加法。因此,算出矩阵C的个元素所需的计算时间为O(n3)为了降低时间复杂度,必须减少乘法的次数使用类似的技术,将矩阵A,B和C中每一矩阵都分块成4个大小相等的子矩阵。由此可将方程C=AB重写为:由此可得:

2016-10-16 08:21:45 765

原创 写在2:40的计划

感觉自己水平还是很渣,刷题也不是很刷的透,所以现在想系统学一遍算法,这个过程中学软件设计师的东西,与此同时搞网络,数据库,操作系统,电量快没了,先睡了,fighting!

2016-10-16 02:43:56 307

原创 分治-大整数乘法

请设计一个有效的算法,可以进行两个n位大整数的乘法运算小学的方法:O(n2)            效率太低X=Y=X = a 2n/2+b     Y = c 2n/2+ dXY = ac 2n+ (ad+bc)2n/2 +bd 为了降低时间复杂度,必须减少乘法的次数。1.XY= ac 2n + ((a-c)(b-d)+ac+bd)

2016-10-16 02:37:03 791

原创 分治-二分搜索

给定已按升序排好序的n个元素a[0:n-1],现要在这n个元素中找出一特定元素x。据此容易设计出二分搜索算法:template intBinarySearch(Typea[],constType& x,int l,int r){     while (r >= l){        int m = (l+r)/2;

2016-10-16 02:26:21 722

原创 分治法-简介

分治法所能解决的问题一般具有以下几个特征:该问题的规模缩小到一定的程度就可以容易地解决;该问题可以分解为若干个规模较小的相同问题,即该问题具有优子结构性质利用该问题分解出的子问题的解可以合并为该问题的解;该问题所分解出的各个子问题是相互独立的,即子问题之间不包含公共的子问题。能否利用分治法完全取决于问题是否具有这条特征,如果具备了前两条特征,而不具备第三

2016-10-16 02:19:17 377

原创 递归-Hanoi塔问题

设a,b,c是3个塔座。开始时,在塔座a上有一叠共n个圆盘,这些圆盘自下而上,由大到小地叠在一起。各圆盘从小到大编号为1,2,…,n,现要求将塔座a上的这一叠圆盘移到塔座b上,并仍按同样顺序叠置。在移动圆盘时应遵守以下移动规则:规则1:每次只能移动1个圆盘;规则2:任何时刻都不允许将较大的圆盘压在较小的圆盘之上;规则3:在满足移动规则1和2的前提下,

2016-10-16 02:18:42 1557

人手一份核武器 - Hacking Team 泄露(开源)资料导览手册 _ WooYun知识库.pdf

事先声明本人并不是全栈安全工程师,仅仅是移动安全小菜一枚,所以对泄漏资料的分析难免会有疏忽或着错误,望各位围观的大侠手下留情。 首先来看安全界两大元老对Hacking Team(以下简称HT)被黑这个事件的看法: @tombkeeper: Stuxnet 让公众知道:“原来真有这种事”,Snowden 让公众知道:“原来这种事这么多”,Hacking Team 让公众知道:“原来这种事都正经当买卖干了”

2020-03-27

空空如也

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

TA关注的人

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