
算法
文章平均质量分 84
Rappy
这个作者很懒,什么都没留下…
展开
-
快速傅立叶变换(FFT)的C++实现与Matlab实验
借佳佳的《复变函数与积分变换》 看了两天,总算弄懂了傅立叶变换是怎么一回事。但是要实现快速傅立叶变换却不需要弄懂那么多东西,看看《算法导论》里面的第 30 章“多项式与快速傅立叶变换”就可以了。不过《算法导论》的介绍和标准的有点小小的不同,就是旋转因子刚好反过来了,不过还是等效的。标准的离散傅立叶 DFT 变换形式如: yk=Σj=0n-1 ajωn-kj = A (ωn-k).(ω原创 2007-07-20 18:35:00 · 33934 阅读 · 20 评论 -
自然数最优分解问题(纯分析)
【问题】设 n 是一个正整数。现要求将 n 分解为若干个自然数的和,且使这些自然数的乘积最大。对于给定的正整数 n,编程计算最优分解方案。【输入】由文件 input.txt 提供输入数据。文件的第 1 行是正整数 n。【输出】程序运行结束时,将计算出的最大乘积输出到文件 output.txt 中。【样例】input:10output:36【分析】by rappizit@yahoo.com.cn对于原创 2007-11-26 18:26:00 · 6027 阅读 · 2 评论 -
无向图的欧拉回路线性时间算法
// 无向图的欧拉回路线性时间算法// by rappizit@yahoo.com.cn// 2007-11-02#include vector>#include list>#include stack>#include algorithm>#include iostream>using namespace std;#define pause system("pause")typedef原创 2007-11-02 21:20:00 · 2691 阅读 · 2 评论 -
单源最短路 Dijkstra 算法 C++高效实现
#include iostream>#include vector>#include using namespace std;typedef vector int> vi;typedef pair int, int> ii;typedef vector ii> vii;typedef vector vii> vvii;const int INF = 0x7FFFFFFF;// 创建一个赋权邻接原创 2007-10-31 20:57:00 · 4012 阅读 · 4 评论 -
判断线段相交
#include iostream>using namespace std;template class T>T Direction (T x1, T y1, T x2, T y2, T x3, T y3){ // P1 -> P2 -> P3, 如果方向不变,返回 0。如果顺时针旋转,返回正数。如果逆时针旋转,返回负数。 return (x3 - x1) * (y2 - y1)原创 2007-10-14 03:27:00 · 1729 阅读 · 0 评论 -
二分图的最佳匹配(KM 算法)
找了标程研究了一下,修改成自己的风格了,贴上来。 引用:KM算法是通过给每个顶点一个标号(叫做顶标)来把求最大权匹配的问题转化为求完备匹配的问题的。设顶点Xi的顶标为A[i],顶点Yi的顶标为B [i],顶点Xi与Yj之间的边权为w[i,j]。在算法执行过程中的任一时刻,对于任一条边(i,j),A[i]+B[j]>=w[i,j]始终 成立。KM算法的正确性基于以下定理: 若由二分图中所有满原创 2007-09-19 05:21:00 · 14678 阅读 · 5 评论 -
二分图的最大匹配(匈牙利算法)
看书看了好久,看不懂。上网找代码研究,还是不懂。突然瞄到书上的插图,顿悟,哈哈^_^将这里的代码修改了一些,贴上来。。// 二分图的最大匹配(匈牙利算法)#include cstdio>#include memory.h>using namespace std;const int XV = 100;const int YV = 300;int xv, yv; // X , Y原创 2007-09-17 04:57:00 · 2445 阅读 · 0 评论 -
N 皇后问题
N 皇后问题 :在 N * N 的棋盘上,放置 N 个皇后,要求每一行,每一列,每一对角线上均只能放置一个皇后,求可能的方案及方案数。 对于 N = 8,采用回溯法很容易求解。今天早上用了大约 10 分钟就搞定了,代码如下:// n-queens 计数(朴素回溯)// by rappizit @ 2007-09-10#include cstdio>#include cmath>原创 2007-09-10 20:19:00 · 1753 阅读 · 0 评论 -
斐波那契数的 O(lgn) 时间复杂度算法
看了算法导论的第 31 章的思考题 31-3,写了点代码。This problem compares the efficiency of three methods for computing the nth Fibonacci number Fn, given n. Assume that the cost of adding, subtracting, or multiplying t原创 2007-08-17 00:02:00 · 5485 阅读 · 0 评论 -
TopCoder 每周一赛的一道题 -- 概率计算(解题报告)
今天午夜开始了 TopCoder 的每周一赛,三道题目,我做了两道,等级从 700 多升到了 955 ,呵呵,再接再厉。其中第二题我觉得挺有意思的,花的时间很少,还是一次性地通过了测试^_^下面是问题描述,英文的,应该不难,呵呵。。红色标记的是重点,加粗的是小标题,最后面斜体是版权信息。》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》Problem S原创 2007-07-22 22:59:00 · 2702 阅读 · 0 评论 -
八数码问题的 A* 算法解答
搞了一个通宵,终于搞定了!偶也!Sicily 的 1379 那题,就是求给定的初始状态到目标状态,转换至少需要多少步。例如状态1 2 34 5 07 8 6到达目标状态1 2 34 5 67 8 0只需一步(将 0 下移一格)即可。在周赛的时候用广度搜索生成所有状态,耗时 0.6S 过了。但是这样不是聪明的办法(不过原理简单,实现也简单)。解这个问题的经典原创 2007-12-10 17:59:00 · 3618 阅读 · 4 评论