![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ACM-算法-数据结构
lan875880923
这个作者很懒,什么都没留下…
展开
-
算法的时间复杂度
算法的时间复杂度 分析一个算法的好坏,时间复杂度是一个非常重要的标准。我们一般用O()表示一个算法的复杂度。 常见的算法时间复杂度有(由小到大): O(1)常数阶 O(logn)对数阶 O(n)线性阶 O(nlogn) O(n^2) O(n^3) | -------- p问题(时间复杂度为上) ...2013-08-07 18:32:35 · 95 阅读 · 0 评论 -
数据结构——堆栈
对于栈,想必大家都十分熟悉了,也能很快的答出栈是一个先进后出的队列。但是在平常编程的生活中应用的十分少。在ACM中,栈是一种十分重要的数据结构(其他领域也一样),我们可以用这种数据结构解决一些十分棘手的问题,大大提高了程序的效率。有这样一道名为Software BUGs 的题。题目的意思简要来说就是去除一篇文章中的所有 ”BUG” 字段。 有些人可能认为这是一道水题,直接扫描文...2013-08-08 22:16:12 · 118 阅读 · 0 评论 -
数据结构——并查集
[size=medium]让我们首先了解一下什么是并查集。并查集的英文:Disjoint Set,即“不相交集合“,将编号分别为1…N的N个对象划分为不相交集合,在每个集合中,选择其中某个元素代表所在集合。 常见两种操作: 合并两个集合 查找某元素属于哪个集合 这也就是这种数据结构叫并查集的原因!!!,下面是一种最简单的实现方法。...2013-08-09 20:08:14 · 91 阅读 · 0 评论 -
算法--分治--a^b%m
杭电上有一道十分让初学者十分蛋疼的题 a^b%m,看似很简单,但题目要求b的范围是(0,1000000000],a是32位整数范围,m是小于40000的整数。咋一看这题,貌似要用高精度。但是赤裸裸的用高精度的话,在空间复杂度以及时间复杂度上都是伤不起的!! 让我们来换个思路,有一定数学基础的人都知道,(a*b)%m 是等价于 a%m * b%m的,这样好了,可以不用高精度了,但是...2013-08-23 19:21:12 · 433 阅读 · 0 评论 -
数论基础-欧拉函数
前几天,在杭电oj上碰到一个数论的题目,附链接: http://acm.hdu.edu.cn/showproblem.php?pid=1286 题意很简单,就是求一个数N比他小的与它互素(最大公约数为1)的数有多少个。 刚开始想要暴力的方法去解决这个问题,但后来发现暴力的时间复杂度是O(n^2),而N是32768以内的整数,测试数据有10000组,明显暴力会超时。 ...原创 2014-03-15 14:03:23 · 165 阅读 · 0 评论 -
BestCoder Round #6 题解
1001 水题,没有什么陷阱1002题意:给你N和K,问你能否将N拆成K个完全不同的正整数,并且满足其中K-1个数的和为完全平方数(i*i)。看到这题,最开始的想法是,枚举完全平方数(n只有200000),则 b = n - i*i 就是那个没有被选进去的数,如果k-1个完全不同的正整数最小的和是 s = (k-1)*k/2(1,2,3,,,k-1的和)。如果b...2014-08-26 19:29:22 · 107 阅读 · 0 评论