随笔分类 - 算法
摘要:一、示例: 树的结构: 示例中自己构建了图片中的这棵树: 树节点模型: 构建树: 二、遍历方式 提供三种方式进行遍历: ① 递归形式的深度优先遍历: ② 非递归的深度优先遍历 3. 广度优先遍历,遍历所有叶子路径 三种方式的输出: 三、总结 示例是查找树的所有叶子节点,举一反三,如果我们是查找树中满
阅读全文
摘要:看到map这里,都不知道它主要是干嘛的,你有没有这样的疑问。 map的主要作用:提供对T类型的数据进行快速和高效的检索 。C++ STL中标准关联容器set, multiset, map, multimap内部采用的就是一种非常高效的平衡检索二叉树:红黑树,也成为RB树(Red-Black Tree
阅读全文
摘要:(转) 1.关于set C++ STL 之所以得到广泛的赞誉,也被很多人使用,不只是提供了像vector, string, list等方便的容器,更重要的是STL封装了许多复杂的数据结构算法和大量常用数据结构操作。vector封装数组,list封装了链表,map和set封装了二叉树等,在封装这些数据
阅读全文
摘要:学到STL的vector,发现手中的材料不是很详细,这里做个汇总。 1 操作 (1)头文件#include<vector>. (2)创建vector对象,vector<int> vec; 注:这里应该是 vector<数据类型>对象;为通用形式,数据类型可以为一般的int ,long ,char ,
阅读全文
摘要:之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必担心内存是否足够、字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至是100%)的需要。我们可以用 = 进行赋值操作,== 进行比较,+ 做串联(是不是很简单?)。我们尽可以把它看成是C++的基本数据类型。 好了,进入正题……… 首先,为了在我们的程序中使用s...
阅读全文
摘要:这几天一直在看计算几何,看了几道算法题,把自己弄得有点头晕,在这里理理自己的头绪,也为大家提供点东西。 1.计算几何最基础的东西“向量”,接下来为大家理理向量先:以向量a(c,d),b(e,f)举例; (1) 判断两个向量是否平行:(即对直线而言是斜率相等) a//b => a x b = 0 =>
阅读全文
摘要:给你两条直线,判断这两条直线是否共线,相交,不相交(即平行),相交的话输出交点。 判断平行,然后通过叉积判断是否共线。 平行判断可以判断两条直线的斜率是否相等。 交点的话,相当于联立方程组求解了。 这些方程看模板理解的,刚才搜了下,有人讲得比较清楚,借鉴下http://blog.csdn.net/d
阅读全文
摘要:(这是对任意多边形面积求法的一个解释) 给定多边形的顶点坐标(有序),让你来求这个多边形的面积,你会怎么做? 我们知道,任意多边形都可以分割为N个三角形,所以,如果以这为突破点,那么我们第一步就是把给定的多边形,分割为数个三角形,分别求面积,最后累加就可以了,把多边形分割为三角形的方式多种多样,在这
阅读全文
摘要:1401: 不容易系列之(4)——考新郎 时间限制(普通/Java):1000MS/10000MS 内存限制:65536KByte 总提交: 512 测试通过:175 描述 七夕节那天,临海江南古长城刚刚举行了一场盛大的集体婚礼,以长城为证,撒播爱情的芬芳。为了使婚礼进行的丰富一些,司仪临时想出了有
阅读全文
摘要:1357: 不容易系列之一 时间限制(普通/Java):1000MS/10000MS 内存限制:65536KByte 总提交: 807 测试通过:384 描述 大家常常感慨,要做好一件事情真的不容易,确实,失败比成功容易多了! 做好“一件”事情尚且不易,若想永远成功而总从不失败,那更是难上加难了,就
阅读全文
摘要:错排问题是组合数学中的问题之一。考虑一个有n个元素的排列,若一个排列中所有的元素都不在自己原来的位置上,那么这样的排列就称为原排列的一个错排。n个元素的错排数记为Dn。 研究一个排列错排个数的问题,叫做错排问题或称为更列问题。 对于排列数较多的情况,难以采用枚举法。这时可以用递归思想推导错排数的递推
阅读全文
摘要:巴什博弈:只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个。最后取光者得胜。 显然,如果n=m+1,那么由于一次最多只能取m个,所以,无论先取者拿走多少个,后取者都能够一次拿走剩余的物品,后者取胜。因此我们发现了如何取胜的法则:如果n=(m+1)r+s,(r为任意自然数,
阅读全文
摘要:#include<cstdio>#include<iostream>#include<stack> using namespace std; int main(){ int n,i,k; int a[1010]; stack<int> s; while(scanf("%d",&n),n) { whi
阅读全文
摘要:贪心基本题, 有助于理解贪心算法的思想 #include <cstdio> #include <algorithm> using namespace std; struct Program { int begin, end; } programs[100]; /** 贪心: 贪心算法的基本步骤 :
阅读全文
摘要:学了高数的同学,会学到向量的外积,也可知道它有一个用途,可以求三角面积。 •外积的几何意义:α和β所张成的平行四边形的有向面积 •由求三角形面积的方法可以推广求凸多边形面积,如图,从一固定点出发,向其他各点引辅助线,这样就分割成了若干个三角形,利用上式求出每个三角形的面积再相加即可。 代码实现: 不
阅读全文