自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 2017/8/31

开学虽然还没有几天时间,但是能够明显感受到课程的难度有了提升,空闲时间总是先写完作业就将时间投入到acm的训练中,不能像暑假里系统地训练是肯定的,但是对于acm的学习也不可能用零碎的时间来做,毕竟零零碎碎的时间可能很难想明白一道题目甚至是一个知识点,所以在需要在acm的学习时间需要固定的一段时间里,也有助于思维的不断深入。就这半个星期的学习结果来看还是挺不错的,对于一些逻辑结构的理解更加的清晰

2017-08-31 21:34:09 199

原创 2017/8/25

一个月的集训就要结束了,只是觉得时间过得太快,仿佛不久之前才开始第一趟ACM课。      在这一个月是时间里,非常感谢老师和同学的帮助,因为当时的ACM选修课我没有选,后来去蹭课又是在选修课已经开了两周的情况下才去听,所以那时候感觉自己好像一直比其他人差不少,其实现在看看,那个时候学的东西也并没有在后来的解题过程中占据举足轻重的地位,但是自信心的打击留下的后遗症还是多少存在的。来到集训可以说

2017-08-25 19:35:54 264

原创 2017/8/24

Bad Hair Day题意:给出从左到右的牛的高度,每头牛可以在不被挡住视线的情况下看到右边的牛,求所有牛能够看到的右边的牛的数量和。解题思路:构建一个递减的单调栈,每次插入一头牛的数据时,将前面小于它的高度的数据删除,每清除之前小的数据之后插入新的数据之前用sum求一次累加和,其表达的含义是在准备插入的牛之前有多少比自己高的牛,这些牛能够看到要插入的牛所以将其数量加上。当再出现一头更高

2017-08-24 21:31:27 207

原创 2017/8/23

树状数组和线段树的题目解起来没有想象中来的简单,一个题目往往在知道了题意以后不能很快有思路,需要在纸上进一步件问题转化后才能有所思路。总结这几天对树状数组和线段树的学习我发现,树这种数据结构在使用起来需要很强的逻辑性,这一点和在学习动态规划时有相同的感受,因为大部分情况都是用数组(或者一维或者二维)来表示树的结构,其意义都是人赋予的逻辑含义,单单就数组本身并没有特定的含义,我们在自己赋予的含义

2017-08-23 20:15:46 220

原创 线段树和树状数组的认识与总结

线段树(Segment Tree)和树状数组(Binary Indexed Tree)具有相似是结构特点,都是以二叉树作为基础进行数据运算,都是擅长处理区间上的数,不同的是线段树的每个节点维护的是对应区间的最小值,所以善于处理区间上的最小值,而树状数组的节点维护的是对应区间的数的和,所以更善于处理区间和。线段树的主要操作为2种:1、给定s和t,求其区间上的最小值;2、给定i和x,把ai的值改成

2017-08-21 20:50:41 1346

原创 运用BIT处理冒泡排序的交换次数问题

题意:给定一个1~n的排列a0,a1,a2,.....,a(n-1),求对这个数列进行冒泡排序所需要的交换次数。 在数据较大时,用常规的双重for循环来求解交换次数就会因为复杂度太高而存在TLE的情况,所以可以利用树状数组善于查询两个数之间的数字和的优势进行解题。首相树状数组的基本操作就是BIT的求和以及BIT的值的更新,那么如何要在没有if语句比较的情况下进行前后数值大小的比较进而求

2017-08-21 20:13:11 1676 1

原创 基于POJ2991Crane问题对线段树的理解

题意:有一台起重机。我们把起重机看成由N条线段依次首尾相接而成。第i条线段的长度是Li。最开始,所有的线段都笔直连接,指向上方。有C条操纵起重机的指令。指令i给出两个整数Si和Ai,效果是使线段Si和S(i+1)之间的角度变成Ai度。其中角度指的是线段Si开始逆时针旋转到S(i+1)所经过的角度,最开始时所有的角度都是180度。按顺序执行这C条指令,在每条指令执行后,输出起重机的前端(第N

2017-08-18 22:03:04 310

原创 最短路问题及路径回归

最短路问题:给定两个顶点,在以这两个点为起点和终点的路径中求最小路径或最小步数问题。单源最短路问题就是固定一个起点,求它到其他所有点的虽短路的问题。重点也固定的点叫做两点之间最短路问题。但是解决单源最短路问题的复杂度也是一样的,因此通常作为单源最短路问题来解决。单源最短路径1(Bellman-Ford算法):d[i]=min{d[j]+(从j到i的边的权值)|e =(j,i) E}

2017-08-17 21:53:26 422

原创 邻接矩阵邻接表

邻接矩阵:使用|V|*|V|的二维数组来表示图,g[i][j]表示顶点i和顶点j的关系。在无向图中可以用1和0表示两顶点之间的边是否存在。在有向图中用同样的方法表示连接,需要注意的是因为有向图中表示方向,所以中不满足g[i][j]==g[j][i]。在带权图中,g[i][j]表示顶点i到顶点j的边的权值,边不存在是常将其设为较大的常数INF来表示两点之间没有连接,这样定义的目的是为了和

2017-08-17 21:50:20 542

原创 穷竭搜索

递归函数:在一个函数中再次调用该函数自身的行为叫做递归。其必须存在函数的停止条件。栈(stack):支持push和pop两种操作的数据结构。push是在栈顶端放入一组数据的操作。pop是从其顶端取出一组数据的操作。后进先出(LIFO)结构队列(queue):同样支持push、pop两个操作,但pop是取出最低端元素的操作。先进先出(FIFO)结构穷竭搜索:深度优先搜索(DFS):从

2017-08-16 17:36:42 284

原创 算法复杂度总结

算法复杂度总结:复杂度:一般分为时间复杂度和空间复杂度。算法花费时间与算法中语句的执行次数成正比,一个算法的执行次数称为时间频度(T(n))时间复杂度:T(n)(时间频度)/f(n)(辅助函数)在n->无穷时的值为一个不等于0的常数,则称f(n)是T(n)的同数量级函数,记作T(n)=O(f(n)),称O(f(n))为算法是(渐进)时间复杂度。即为最高阶的n 的函数,T(n)=n^

2017-08-15 21:16:44 504

空空如也

空空如也

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

TA关注的人

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