摘要:Q1(hdu1402): 给出两个很大的数字A,B,计算二者乘积。 分析:这个题目java应该能过,用FFT做能够加速计算。这里将字符串A按权(10进制)展开,前面的系数就是多项式的系数,这样就构造出了多项式乘积形式,然后用FFT加速即可。 参考代码如下: #include <stdio.h> #i
阅读全文
摘要:Lucas定理用于解决较大组合数的取模问题,下面的理论整理源自冯志刚的《初等数论》,其与百度百科上呈现的Lucas定理形式上不同,但是容易看到二者的转化形式。 首先我们来整理一下冯志刚的《初等数论》中关于Lucas定理的证明:
阅读全文
摘要:二叉树不仅结构简单、节省内存,更重要是是这种结构有利于对数据的二分处理。之前我们提过,在二叉树的基础上能够派生很多经典的数据结构,也是下面我们将进行讨论的知识点: (1) 提高数据查找效率的二叉排序树。 (2) 优先队列的最佳存储结构的二叉堆。 (3) 兼具二叉排序树和二叉堆性质的树堆。 (4) 用
阅读全文
摘要:二叉树是树结构中的重要概念,一些特殊的二叉树如满二叉树和完全二叉树由于节点序号的特殊关系,在一些算法中十分常见。 这篇文章将从三个方面介绍有关二叉树的知识点: (1) 普通有序树转化为二叉树。 (2) 计算二叉树路径。 (3) 通过两种遍历确定二叉树结构。 一.普通有序树转化为二叉树 其实不仅限于有
阅读全文
摘要:关于树结构的非线性表编程在数据结构中可以说占据了半壁江山,其中涉及的知识点繁杂,但也是数据结构体现运算优化的核心所在,下面我们将较为初步且系统得讨论数据结构中一系列有关树的表示。 首先我们再次明确树的形式化概念: 树是n个节点的有限集合,这个集合满足以下的条件: 1) 有且仅有一个节点没有前件。 2
阅读全文
摘要:在处理类似下面的问题中,一般的计数方法会出现问题:假如你要用红、蓝两种颜色给一个正四面体的四个顶点着色,试问存在多少种不同的着色方案? 在高中我们常用的方法是模拟涂色过程,分情况讨论,然后基于分步乘法原理。但是在那里没有考虑几何体通过旋转等操作带来的对称性,在本文中,我们就来介绍一种专门处理这类问题
阅读全文