theArcticOcean

博观而约取,厚积而薄发

zoj 3421 Error Curves(三分)

题目:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4105 大意:很多的函数曲线,二次或一次,要构造这样的新曲线,对于每个x,新曲线对应的Y值是原来所有函数对应值的最大值。要求出新曲线上最小的y值。 新曲线还是具有二次曲线...

2015-07-31 20:46:33

阅读数:357

评论数:0

poj 3737 UmBasketella(数学推导||三分)

题目:http://poj.org/problem?id=3737 我是想练一练三分的,听说这题能用上,但是我做完了也没把三分派上用场(第一种方法)。数学分析一下就能得出结果啊。令圆锥的底面半径是r,高是h,侧面母线是l,由几何知识:圆锥侧面积s1=2*pi*r*l/2=pi*r*l,底面积...

2015-07-31 15:55:04

阅读数:634

评论数:0

三分搜索算法&hdu 2899 Strange fuction

三分搜索算法: 整个算法在最坏情况下的计算时间复杂性为O(log3(n)),每执行一次算法的循环,待搜索数组的大小减少三分之二。对具体n值的数组进行搜索时,虽然三分搜索法在数据搜索时,循环次数减少了,但在一次循环中最坏情况下需要进行数据的两次比较,由于充分利用了待搜索数组的最大数和最小数,在搜索方...

2015-07-31 11:03:53

阅读数:605

评论数:0

zoj 3228 Searching the String(trie)

题目:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=3441 看见它我就知道要用到AC,但是用经典的AC耗内存啊。而且还要求求出子串重叠的出现次数和不能重叠的出现次数两种情况。先给出的是源码串,再给出子串看有木有,输出出现的...

2015-07-31 09:37:23

阅读数:465

评论数:0

hdu 3065 病毒侵袭持续中(AC automaton)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=3065 每个子串是不同的,求出在源码串中各个子串出现的次数,按照输入子串的顺序将出现次数大于0的输出。 例如: Sample Input 3 AA BB CC ooxxCC%dAAAoen....E...

2015-07-30 19:27:55

阅读数:536

评论数:0

AC自动机初识&hdu 2222 Keywords Search

AC自动机:Aho-Corasick automaton,该算法在1975年产生于贝尔实验室,是著名的多模匹配算法之一。 AC自动机的核心:字典树(trie树),KMP模式匹配算法,BFS(因为是多模匹配)。首先构造一颗trie树,再在trie树上制作fail指针(用到了temp指针尝试是否fai...

2015-07-30 10:45:33

阅读数:483

评论数:0

高斯消元法

线性代数里的高斯消元法在许多的程序问题中也常用到,在计算机里不能列出方程组,所以用增广矩阵来计算解集。比如这样的方程组: 对应的增广矩阵: 高斯消元的模板: #include #include #include #include #include using namespace std; co...

2015-07-29 15:42:43

阅读数:589

评论数:0

最长公共子序列(dp) & hdu 1159 Common Subsequence

最长上升子序列问题(long conmon subsequence)简称LCS。 来自《算法导论》的介绍:     我们将最后一种相似度的概念命名为最长公共子序列问题。一个给定序列的子序列,就是将给定 序列中零个或多个元索去掉之后得到的结果。其形式化定义如下:给定一个序列X=,另一个序列Z=满足如...

2015-07-23 21:05:25

阅读数:523

评论数:0

hdu 1087 Super Jumping! Jumping! Jumping!(最长上升子序列&dp)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1087 其实我觉得这样的题目的解题核心应该叫做最大上升子序列更好,因为是求上升子序列的和最大的情况。不是单纯的长度最长(看下面最后一个测试用例)。 根据题意引入测试用例: 3 1 3 2 4 1...

2015-07-23 19:26:51

阅读数:369

评论数:0

寻找极小值(C百例)

原问题来源于《C语言精选名题百则-技巧篇》 描述: 因为和顺序相关,所以初步估计和二分有关。自己干脆写一个普通的查找和二分做一个效率上的对比(先输出对应最小数再输出查找的时间): 产生数据: #include #include using namespace std; int main(i...

2015-07-23 17:26:32

阅读数:453

评论数:0

python的初级训练

读了一点《A Byte Of Python》,对python有了初步的认识,但是没有动手练练总是不行的。所以在zoj上找了几道简单题用python写一写: zoj 1001 A+B Problem 题目:http://acm.zju.edu.cn/onlinejudge/showProblem...

2015-07-23 15:01:07

阅读数:382

评论数:0

鸽巢原理(Pigeonhole Principle)

鸽巢原理(Pigeonhole Principle)的基本定理: If n + 1 objects are distributed into n boxes, then at least one box contains two or more of the objects. 一个简单的例子:...

2015-07-22 21:16:10

阅读数:1419

评论数:0

set四个集合操作&&红黑树初识

了解红黑树: 首先说说二叉查找树。二叉查找树的重要性质:任何节点的键值一定大于其左子树中每一个节点的键值,并小于其右子树中每一个节点的键值。在极端情况下,当所有节点位于一条链上时,二叉查找树的操作时间为O(N)。沿树的左边向下走,能够找到最小值。沿着树的右边走能够找到最大值。 和二叉搜索树一样...

2015-07-20 19:54:55

阅读数:716

评论数:0

heap

heap: (二叉)堆是一个数组,可以被看做完全二叉树,根结点是1,lch=2*pa,rch=2*pa+1。堆常有max_heap和min_heap,前者heap[parent]>=heap[child],后者heap[parent] MAX-HEAPIFY (A, i ) 1  l= LE...

2015-07-19 21:16:55

阅读数:505

评论数:0

poj 2549 Sumsets(hash)

题目:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=23666 a+b+c=d 转化: a+b=d-c。这就变成了查找问题。1000*1000/2=500000,所以需要5e5大的空间装散列表。下面用hash拉链法和开放地址...

2015-07-18 16:51:28

阅读数:516

评论数:0

组合与排列的表达:pascal三角形和母函数

杨辉三角和母函数都能表达不同问题的组合结果,杨辉有利于打表存储且运算快,母函数则能更好体现了组合的思想和过程。已知C(n,m)=A(n,m)/m!=n!/(n-m)!/m!,对于如下的n和m: 3 2 5 3 9 5 10 5 16 8 20 10 约定: 1 杨辉三角: #in...

2015-07-16 20:40:27

阅读数:590

评论数:0

指数型母函数&&hdu 2065 "红色病毒"问题

常用的指数型母函数:e^x=1+x/1!+x^2/2!+x^3/3!+……    e^(-x)=1-x/1!+x^2/2!-x^3/3!+…… 指数型母函数用于解决多重集合的排列问题,g(x)=p(n,0)+p(n,1)x+p(n,2)x^2/2!+p(n,3)x^3/3!+……+P(n,n)x...

2015-07-16 16:10:17

阅读数:589

评论数:0

hdu 1003 Max Sum(分而治之||最大连续子序列 dp)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1003 大意:给出无序的一串数字,求出它最大的子序和及其起点和终点,如果有多个答案输出第一个(左边)。for(i=1;i #include #include using namespace std; ...

2015-07-15 10:45:13

阅读数:408

评论数:0

无限式查找(C百例)

问题来源于《C语言名题精选百则-技巧篇》。 因为不知道数组的元素个数,所以无法直接用二分法。但是我们可以用已知的元素及无限大元素来确定可能包含目标值的数组长度,这就又能用二分法了。 #include #include using namespace std; int midfind(in...

2015-07-15 08:30:23

阅读数:339

评论数:0

寻找固定的和(C百例)

我优化的想法:将已知的两个数组进行排序,前者从小到大排序,后者从大到小排序。然后遍历第一个数组,针对每一个数字,再在第二个数组中查找,和大了向后找,dex++,找到了就count++且dex++,当a[i]+b[dex] 产生输入数据: #include #include #include u...

2015-07-14 22:44:11

阅读数:408

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭