
算法
xyq1986
这个作者很懒,什么都没留下…
展开
-
约瑟夫环的数学解法
无论是用链表实现还是用数组实现都有一个共同点:要模拟整个游戏过程,不仅程序写起来比较烦,而且时间复杂度高达O (nm),当n,m非常大(例如上百 万,上千万)的时候,几乎是没有办法在短时间内出结果的。我们注意到原问题仅仅是要求出最后的胜利者的序号,而不是要读者模拟整个过程。因此如果要追求效 率,就要打破常规,实施一点数学策略。为了讨论方便,先把问题稍微改变一下,并不影响原意:问题描述:n个人(编号转载 2006-11-08 11:18:00 · 1007 阅读 · 0 评论 -
FZU1492
本题基于插入排序,不过用了STL容器set来做存储,因此插入结点成了O(logn)时间,总的时间复杂度大概到O(nlogn),利用了set的排序性质,省去了写二叉树的麻烦,起初用的n^2的扫描和快排后左右扫描的算法都不见理想.#includestdio.h>#includelimits.h>#includeset>using namespace std;int main()...{原创 2007-04-25 15:06:00 · 799 阅读 · 0 评论 -
FZU OJ 1707 等式数量
<br />FZU的1707等式数量问题,折腾了好久,几次的超时和一次的wrong answer,终于在最后ac了。刚开始的思路是最普通的P(n,2),再for数组找等号,慢得不行。再来sort后,用binary_search找等号还是慢。接着改用set存数据,还是p(n,2),再set找等号,还是超时。哦哦……<br />反过来,逆向思考,先找等号右边,再找等号左边的式子,于是,还是先sort数组,再for循环,对每个数组元素查等号左边的两个数,为减少查找的复杂度,采用头尾查找的方式可省掉不少功夫,抓住头原创 2010-06-25 23:19:00 · 1124 阅读 · 0 评论 -
fzu online judge Problem 1478 环形整数串
Problem Description你知道最大和子串问题么? 就是给你一个整数串,要你求出其中的一个连续子串,要求其和最大。 比如: 串是 -2 2 0 1 -48 1,显然其最大和连续子串是2 0 1,其和是3。现的问题是如果求环形整数串的最大连续和子串呢?请编写一个程序解决这个问题。 Input本题有多组输入数据,你必须处理到EOF为止每组数据的第一行有一个整数n, (1思路:假设串为(a0,a1,a2...an),算出串的最大连续子串和A,当A为串中所以数相加时,将串末尾的所有非负数旋转到串原创 2010-07-08 16:09:00 · 1067 阅读 · 0 评论