
算法笔记
文章平均质量分 50
zsc09_leaf
add oil
展开
-
出longlong 的组合数对 素数求余
<br /> <br /> <br />原文:http://hi.baidu.com/yu_zhuoran/blog/item/4993c6f3e24c7d59342acc0e.html<br /> <br /> <br />1) C(m, n) % p (p为素数, m, n <= 10^8)<br /><br /> 算法伪代码:<br /><br /> 1) 预处理 f[x] = (x!) mod p. (0 <= x < p)<br /><br /> 2) 求m!中把p因子去掉转载 2011-05-09 22:03:00 · 1516 阅读 · 0 评论 -
排列哈希、反哈希(求一个排列是所有排列中的第K个排列)
引文:http://www.cppblog.com/yindf/archive/2010/02/24/108312.html了解C++的童鞋都知道algorithm里面有个next_permutation可以求下一个排列数,通过《STL 源码剖析》(或者自己读代码)可以知道其实现,比如:abcd next_permutation -> abdc那么,为什么abcd的原创 2011-08-14 15:10:40 · 1598 阅读 · 0 评论 -
bitset 用法整理
原文:http://www.cppblog.com/kyelin/articles/20422.html构造函数bitset b;b有n位,每位都为0.参数n可以为一个表达式.如bitset b0;则"b0"为"00000";bitset b(转载 2011-07-08 22:54:06 · 8581 阅读 · 0 评论 -
hdu 1717 --小数化分数2
1.有限循环小数化成分数 例1: 0.5 0.5*10=5; 0.5 = 5/10 = 1/2; 例2: 0.3275 0.3275 * 10000 = 3275 0.3275 = 3275/10000 = 131/400 ; 2.无限循环小数化分数 例1: 0.(4)原创 2011-06-16 13:45:00 · 1127 阅读 · 0 评论 -
数据结构学习网站
福州大学算法与数据结构武汉理工大学数据结构原创 2011-06-16 22:43:00 · 2602 阅读 · 0 评论 -
最长不降子序列 NlogN解法
这是一个很好的题目。题目的算法还是比较容易看出来的,就是求最长上升子序列的长度。不过这一题的数据规模最大可以达到40000,经典的O(n^2)的动态规划算法明显会超时。我们需要寻找更好的方法来解决是最长上升子序列问题。先回顾经典的O(n^2)的动态规划算法: 设A[i]表示序列中的第i个数,F[i]表示从1到i这一段中以i结尾的最长上升子序列的长度,初始时设F[i] = 0(i = 1转载 2011-06-10 16:37:00 · 6170 阅读 · 0 评论 -
ACM计算几何题目推荐
下面的OJ之中,CII是指ACM-ICPC Live Archive ,网址是:http://cii-judge.baylor.edu/其他OJ的地址大家都熟知了,因此不再提供。一。基础题目1.1 有固定算法的题目A, 最近点对问题最近点对问题的算法基于扫描线算法。ZOJ 2107 Quoit Design 典型最近点对问题POJ 3714 Raid 变种最近点对问题B,最小包围圆最小包围圆的算法是一种增量算法,期望是O(n)。ZOJ 1450 Minimal转载 2011-04-18 18:22:00 · 15554 阅读 · 1 评论 -
用树状数组解决区间查询问题
转至ROBA大神博客:http://roba.rushcj.com/?p=510 本文扩写自郭神的《树状数组新应用》,在此表示膜拜。树状数组的学名貌似叫做Binary Index Tree,关于它的基本应用可参考Topcoder上的这篇Tutorial.树状数组可以看作一个受限制的线段树,它维护一个数组,最经典的树状数组支持的基本操作有两个:(1)改变转载 2011-06-07 20:02:00 · 1777 阅读 · 0 评论 -
使用stringstream对象实现数据类型之间的转换
很多人都使用传统的C 库来进行数据类型之间的转换,这将会导致很多问题,因为这样的转换方法存在很多危险的陷阱。比如itoa()这个函数在 标准库中是不存在的。标准的库提供了一种更好的转换选择,因为这一方法更加安全,自动,直接。 让我们来看一个具体的范例。假设你想把一个int转换为string。为了达到这一目的,你必须遵循如下的步骤:1. 建立一个stringstream对象,转载 2011-06-04 22:15:00 · 1579 阅读 · 0 评论 -
STL -- 堆
<br />C ++ STL 中与heap 有关的操作有 如下几个 :<br /><br /><br />make_heap(), <br /><br />pop_heap(),<br /><br />push_heap(), <br /><br />sort_heap(), <br /><br />is_heap();<br /> <br />is_heap() :<br /><br /> 注:visual studio的STL实现中没有该函数。<br /><br />原型如下 :<br /><br转载 2011-04-10 16:49:00 · 789 阅读 · 0 评论 -
hdu -- 1867 A + B for you again (KMP)
<br /> <br /> <br />http://acm.hdu.edu.cn/showproblem.php?pid=1867<br /> <br /> <br />改天再写细节。<br /> <br />#include<iostream>using namespace std;const int P=500010;int fail[P]; char a[500010],b[500010];char ans[2][1000010];int kmp(char* str, cha原创 2011-05-19 17:02:00 · 1048 阅读 · 0 评论 -
转:KMP算法详解
原帖地址:http://www.matrix67.com/blog/archives/115 如果机房马上要关门了,或者你急着要和MM约会,请直接跳到第六个自然段。 我们这里说的KMP不是拿来放电影的(虽然我很喜欢这个软件),而是一种算法。KMP算法是拿来处理字符串匹配的。换句话说,给你两个字符串,你需要回答,B串是否是A串的子串(A串是否包含B串)。比如,字符串A="I'm matrix67",字符串B="matrix",我们就说B是A的子串。你可以委婉地问你的MM:“假如你要向你喜欢的人表白的话转载 2011-03-29 22:09:00 · 801 阅读 · 1 评论 -
poj -- 2833 The Average(优先队列或堆或直接模拟)
http://poj.org/problem?id=2833 The AverageTime Limit: 6000MS Memory Limit: 10000KTotal Submissions: 7443 Accepted: 2288Case Time Limit: 4000MSDescriptionIn a speech contest, when原创 2011-04-10 16:49:00 · 1294 阅读 · 2 评论