数据结构与算法
文章平均质量分 54
joyyoj
这个作者很懒,什么都没留下…
展开
-
埃及分数
埃及分数,题目参考http://acm.fjnu.edu.cn/show?problem_id=1341题目:在古埃及,人们使用单位分数的和(形如1/a的, a是自然数)表示一切有理数。 如:2/3=1/2+1/6,但不允许2/3=1/3+1/3,因为加数中有相同的。 对于一个分数a/b,表示方法有很多种,但是哪种最好呢? 首先,加数少的比加数多的好,其次,加数个数相同的,最小的分数越大越原创 2009-09-26 14:08:00 · 2596 阅读 · 1 评论 -
foj1465 Sub Sequence 记录
<br />这道题目感觉也不是很难,奈何提交多次都是超时,后来发现原来会卡STL的sort……先把超时的程序贴出来吧,这道题目也让我知道了原来全局区的大小可以比栈多许多。<br />//解题思路<br />//用sum[j] = v[0] + .. + v[j]<br />//如果v[x]都是正数,则很容易解决,因为直接for j,然后可以用2分的思想;<br />//问题在于v[x]可以<0, 因此得到的结果sum不一定是有序的; <br />//改进思路:<br />//可以对sum数组进行排序于是得到原创 2010-07-10 23:26:00 · 502 阅读 · 0 评论 -
POJ1816 记录
Technorati 标签: 数据结构与算法 看了一遍,题目本身并不难,容易想到用Trie树。对哪个建立Trie树,显然对后面的串建立是不太合适的,因为0 #include #include #include using namespace std;const int KEYSIZE = 28;const int MATCH_ANY = 26; //*const int MATCH_ONE = 27; //?const int MAXN = 21;class原创 2010-07-09 23:13:00 · 1018 阅读 · 0 评论 -
数据结构复习之堆
<br />马上要找工作了,因此最近开始复习一下数据结构,早上扑腾了半天,把堆写了一遍,不过太久没写了,实现的最简单的思想,还是费了老半天调试了多次才写完,也太水了…… <br />#ifndef VLIB_VHEAP_H#define VLIB_VHEAP_H#include "algorithm_global.h"#include <vector>#include <cassert>_VLIB_BEGIN_template <typename VT>class V原创 2010-07-10 11:49:00 · 572 阅读 · 0 评论 -
(转)树状数组
树状数组引言在解题过程中,我们有时需要维护一个数组的前缀和S[i]=A[1]+A[2]+...+A[i]。但是不难发现,如果我们修改了任意一个A[i],S[i]、S[i+1]...S[n]都会发生变化。可以说,每次修改A[i]后,调整前缀和S[]在最坏情况下会需要O(n)的时间。当n非常大时,程序会运行得非常缓慢。因此,这里我们引入"树状数组",它的修改与求和都是O(logn)的,效率非常高。理论为了对树状数组有个形象的认识,我们先看下面这张图。 如图所示,红色矩形表示的数组C[]就转载 2010-07-05 22:04:00 · 934 阅读 · 1 评论 -
树状数组POJ2155
POJ 2155是一道很不错的题目,表面上看,这题的要求似乎和树状数组的使用方法恰好相反,改变的是一个区间,查询的反而是一个点。实际上可以通过一个转化巧妙的解决。首先对于每个数A定义集合up(A)表示{A, A+lowestbit(A), A+lowestbit(A)+lowestbit(A+lowestbit(A))...} 定义集合down(A)表示{A, A-lowestbit(A),转载 2010-03-02 20:41:00 · 679 阅读 · 0 评论 -
POJ1167
官网的解题报告:http://olympiads.win.tue.nl/ioi/ioi94/contest/day2prb2/index.html#include#include#include#include#include using namespace std;class Route{public: Route(int firstTime_,原创 2010-02-27 12:07:00 · 1454 阅读 · 1 评论 -
POJ2051 【STL heap的用法】
//POJ2051//题目的大意是给定n个查询请求,每个查询请求有一个ID号,并以时间间隔为m不停发送请求//要计算前k个到达的请求,如果同一时刻有k个请求,按照id号从小到大排列#include #include #include struct Query{ int id; int period; int t;};bool cmp(cons原创 2009-09-30 16:45:00 · 1276 阅读 · 0 评论 -
树状数组
<br />这两天看了一下树状数组,在poj提交了两题,1195和3321,1195就是二维数组的实现,比较基础,3321要进行深搜转换成树状数组可以解决的问题,比较费劲,巨耗时间,反应了我的水平真是菜的可以!<br />开始找工作了,心里没底,应了一句话:书到用时方恨少!我早干嘛去了啊?原创 2010-09-12 21:24:00 · 440 阅读 · 0 评论