关闭
当前搜索:

zoj 3421 Error Curves(三分)

题目:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4105 大意:很多的函数曲线,二次或一次,要构造这样的新曲线,对于每个x,新曲线对应的Y值是原来所有函数对应值的最大值。要求出新曲线上最小的y值。 新曲线还是具有二次曲线的性质,所以应当用三分法来完成查找。对于每条函数曲线都得计算y值,最后选出最大的Y,此处只能暴力...
阅读(301) 评论(0)

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

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

三分搜索算法&hdu 2899 Strange fuction

三分搜索算法: 整个算法在最坏情况下的计算时间复杂性为O(log3(n)),每执行一次算法的循环,待搜索数组的大小减少三分之二。对具体n值的数组进行搜索时,虽然三分搜索法在数据搜索时,循环次数减少了,但在一次循环中最坏情况下需要进行数据的两次比较,由于充分利用了待搜索数组的最大数和最小数,在搜索方向的选择上灵活性更强。这是因为三分算法稍加变化可得从大到小方向上的三分法的搜索算法或从小到大方向上的...
阅读(524) 评论(0)

zoj 3228 Searching the String(trie)

题目:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=3441 看见它我就知道要用到AC,但是用经典的AC耗内存啊。而且还要求求出子串重叠的出现次数和不能重叠的出现次数两种情况。先给出的是源码串,再给出子串看有木有,输出出现的次数。所以先把源码插入tree中,然后统计能够重叠的情况和不能重叠的情况,并把信息存储起来,最后依...
阅读(400) 评论(0)

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

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

AC自动机初识&hdu 2222 Keywords Search

AC自动机:Aho-Corasick automaton,该算法在1975年产生于贝尔实验室,是著名的多模匹配算法之一。 AC自动机的核心:字典树(trie树),KMP模式匹配算法,BFS(因为是多模匹配)。首先构造一颗trie树,再在trie树上制作fail指针(用到了temp指针尝试是否fail),有了这样的数据结构作为基础后就能用KMP算法的思想来查找目标串。最后用BFS来统计匹配的串的个...
阅读(418) 评论(0)

高斯消元法

线性代数里的高斯消元法在许多的程序问题中也常用到,在计算机里不能列出方程组,所以用增广矩阵来计算解集。比如这样的方程组: 对应的增广矩阵: 高斯消元的模板: #include #include #include #include #include using namespace std; const int MAXN=50; int a[MAXN][MAXN];//增广矩阵 int...
阅读(468) 评论(0)

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

最长上升子序列问题(long conmon subsequence)简称LCS。 来自《算法导论》的介绍:     我们将最后一种相似度的概念命名为最长公共子序列问题。一个给定序列的子序列,就是将给定 序列中零个或多个元索去掉之后得到的结果。其形式化定义如下:给定一个序列X=,另一个序列Z=满足如下条件时称为X的子序列(subsequence),即存在一个严格递增的X的下标序列,对所有j=1,...
阅读(468) 评论(0)

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

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

寻找极小值(C百例)

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

python的初级训练

读了一点《A Byte Of Python》,对python有了初步的认识,但是没有动手练练总是不行的。所以在zoj上找了几道简单题用python写一写: zoj 1001 A+B Problem 题目:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1001 大意就是输出两个数的和。 import sys ...
阅读(320) 评论(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. 一个简单的例子:13个人里至少有两个人的生日是同一月的。 鸽巢原理的相关原理: If n objects are p...
阅读(804) 评论(0)

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

了解红黑树: 首先说说二叉查找树。二叉查找树的重要性质:任何节点的键值一定大于其左子树中每一个节点的键值,并小于其右子树中每一个节点的键值。在极端情况下,当所有节点位于一条链上时,二叉查找树的操作时间为O(N)。沿树的左边向下走,能够找到最小值。沿着树的右边走能够找到最大值。 和二叉搜索树一样,红黑树(一种特殊的二叉查找树)可以支持search,minimum,maximun,insert,d...
阅读(558) 评论(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= LEFT (i) 2  r= RIGHT (i) 3  if l A[i] 4      large...
阅读(456) 评论(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拉链法和开放地址法来实现: 拉链法,存储结构即用到了链式前向星的思想。 #include #include #...
阅读(441) 评论(0)
58条 共4页1 2 3 4 下一页 尾页
    个人资料
    • 访问:331304次
    • 积分:8856
    • 等级:
    • 排名:第2517名
    • 原创:575篇
    • 转载:13篇
    • 译文:0篇
    • 评论:36条
    我的链接
    最新评论