算法
文章平均质量分 64
TomMengdle
这个作者很懒,什么都没留下…
展开
-
约瑟夫问题的数学解法
写完密码约瑟夫就想到原来看到约瑟夫问题的一个数学解法 很巧妙很简单 不过只能推出最后一个出列的人 无论是用链表实现还是用数组实现都有一个共同点:要模拟整个游戏过程,不仅程序写起来比较烦,而且时间复杂度高达O(nm),当n,m非常大(例如上百万,上千万)的时候,几乎是没有转载 2011-08-28 11:10:00 · 575 阅读 · 0 评论 -
工程师和数学家的区别
工程师追求的是结果的正确性,而数学家要的是过程的正确性。 过程可以不够准确,但是可以用一些其他的办法来保证结果的正确性。 在做一道题的时候想起来的: 在SMS4 的线性变换中,寻找分支数为5的变换。你在验证变换的时候,其实无需考虑位模式为1111的数据(占了9原创 2011-10-16 10:33:12 · 1069 阅读 · 0 评论 -
POJ1067学习 威佐夫博奕(Wythoff Game)
取石子游戏 Description 有两堆石子,数量任意,可以不同。游戏开始由两个人轮流取石子。游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在两堆中同时取走相同数量的石子。最后把石子全部取完者为胜者。现在给出初始的两堆石子的数目,如果轮到转载 2011-10-08 12:47:08 · 599 阅读 · 0 评论 -
POJ1012思路分析
1. 第一种思路: 这是在《具体数学》这本书提到的, 你可以将这个数取为2k, 2k - 1, 2k -2,....., k+1的公倍数,那么第一次的时候你会取走第2K个,第二次的时候取走第2k-1个,以此类推,会取走第k+1个,算法宣告完成。 这种思路只能证原创 2011-10-08 10:32:56 · 435 阅读 · 0 评论 -
01背包问题-我犯的错误记录
写了一个01背包,本来打算节省存储空间的. 结果发现方向错了. 这道题和LCS不同,LCS既可以按列进行计算,又可以按行计算.每一列(行)仅用到前一列(行)的结果. 背包不同. 先说明: 一列共有num个元素. num代表的是物品的种类数. (原本在为优化情况下) .一行共有totalweight个元素. tatalweight代表背包乘重量 在01背包问题中,只能按照一行一行进行计算.原创 2011-11-06 20:14:26 · 536 阅读 · 0 评论 -
关于最长公共子序列问题的空间优化
/** * 最长公共子序列 * 优化了内存空间的使用 * 观察到一件事: 每一个元素的计算,只和其在左上, 左边, 上边的三个元素相关 * 可以考虑len(x) + 3 * 3个变量 定义为leftAbove, left, above */ #include #include #include using namespace std; int LCS(string x, strin原创 2011-11-08 00:31:32 · 2319 阅读 · 0 评论 -
IBM Ponder This史上最难谜题:给出谜底猜谜面
IBM Ponder This史上最难谜题:给出谜底猜谜面 Brain Storm | 2009-04-09 14:49| 21 Comments | 本文内容遵从CC版权协议 转载请注明出自matrix67.com 2009年2月份IBM Ponder This的谜题可能是从98年谜题月赛开办以来最难的谜题。谜题发布一个月之后仍然没有任何人答对,主办人不得不宣转载 2011-12-14 10:09:31 · 1142 阅读 · 0 评论 -
Fibonacci堆的代码-欢迎斧正并且报告Bug
#include"stdafx.h" #include #include #include"PriorityQueue.h" #include #include #include using namespace std; //Node: //Pointer: Left, Right, Parent, Child //bool mark, ElemType elem, int degr原创 2012-05-25 20:12:56 · 634 阅读 · 0 评论