
数据结构
文章平均质量分 77
code_beauty
豆瓣:
http://www.douban.com/people/43788804/
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
速度限制(图)
<br /> <br />问题描述:<br />在这个繁忙的社会中,我们往往不再去选择最短的道路,而是选择最快的路线。开车时每条道路的限速成为最关键的问题。不幸的是,有一些限速的标志丢失了,因此你无法得知应该开多快。一种可以辩解的解决方案是,按照原来的速度行驶。你的任务是计算两地间的最快路线。<br />你将获得一份现代化城市的道路交通信息。为了使问题简化,地图只包括路口和道路。每条道路是有向的,只连接了两条道路,并且最多只有一块限速标志,位于路的起点。两地A和B,最多只有一条道路从A连接到B。你可以假设加原创 2010-06-21 10:37:00 · 979 阅读 · 1 评论 -
数石子题解
<br />提交:http://www.rqnoj.cn/Problem_36.html<br /> <br /> <br />题目描述<br /> <br />佳佳是个贪玩的孩子。一天,他正在跟凡凡玩“数石子”的游戏。佳佳在地上摆了N堆石子,其中第I堆石子有Ai个石头。佳佳每次都会问凡凡:“凡凡,请问从第I堆到第J堆,总共有多少个石子?”聪明的凡凡每次都能快速而准确地回答对。凡凡老是被问问题,心里有些不服,就对佳佳说:“佳佳,你还记得你问了什么问题,我回答了什么答案吗?”佳佳说当然记得。于是凡凡说:“好,原创 2010-10-10 20:36:00 · 639 阅读 · 0 评论 -
上白泽慧音 题解 ---- tarjan求强连通分量
题目:Problem 4上白泽慧音(classroom.cpp/c/pas)题目描述在幻想乡,上白泽慧音是以知识渊博闻名的老师。春雪异变导致人间之里的很多道路都被大雪堵塞,使有的学生不能顺利地到达慧音所在的村庄。因此慧音决定换一个能够聚集最多人数的村庄作为新的教学地点。人间之里由N个村庄(编号为1..N)和M条道路组成,道路分为两种一种为单向通行的,一种为双向通行的,分别用1和2来标记。如果存在由村庄A到达村庄B的通路,那么我们认为可以从村庄A到达村庄B,记为(A,B)。当(A,B)和(B,A)同时满足时,原创 2010-09-21 22:31:00 · 1144 阅读 · 1 评论 -
Mooo 单调队列求解
<br /> <br />题目描述:<br />有 N 个能量发射站排成一行,每个发射站i都有不相同的高度 Hi,并能向两边(当然两端的只能向一边)同时发射能量值为 Vi 的能量,并且发出的能量只被两边最近的且比它高的发射站接收。<br />显然每个发射站发来的能量有可能被0 或 1 或 2 个其它发射站接收,特别是为了安全,它受到的能量总和是我们很关心的。由于数据很多,请你帮助我们计算出接受了最多能量的发射站接受的能量是多少。<br />数据范围<br />1 <= N <= 50,000<br />1原创 2010-09-25 21:53:00 · 819 阅读 · 0 评论 -
求图的所有强连通分量 ---- tarjan算法
转自:http://apps.hi.baidu.com/share/detail/15830459在有向图G中,如果两个顶点间至少存在一条路径,称两个顶点强连通(strongly connected)。如果有向图G的每两个顶点都强连通,称G是一个强连通图。非强连通图有向图的极大强连通子图,称为强连通分量(strongly connected components)。下图中,子图{1,2,3,4}为一个强连通分量,因为顶点1,2,3,4两两可达。{5},{6}也分别是两个强连通分量。直接根据定义,用双向遍历取转载 2010-09-21 05:43:00 · 775 阅读 · 0 评论 -
相连的农场题解
<br />题目与提交:http://www.rqnoj.cn/Problem_480.html<br /> <br />这题用并查集做,还是很简单的。<br /> <br />#include <iostream>using namespace std;int _gf[501],_gn; //并查集int _fGetFather( int n ){ if( _gf[n] != n ) _gf[n] = _fGetFather( _gf[n] ); return _gf[n];原创 2010-08-26 15:49:00 · 423 阅读 · 0 评论 -
最小生成树的衍生问题
题目描述:最小生成树是图论中一个很常见的问题。对你来说应该也是很简单的。现在这道题和普通的最小生成树有点不同。给定一个带权无向图G(V, E),如果T是G的一棵生成树,定义value(T) = max{ value(e) | e is in T } – min{ value(e) e is in T},即value(T)是这棵生成树中最大权值的边与最小权值的边之差。现在,我要你找出最小的value(T)。输入格式(b.in):第一行是两个整数N和M,分别表示图G的顶点数和边数。然后是M行,第i (1输入保证原创 2010-08-26 12:14:00 · 724 阅读 · 0 评论 -
魔兽世界 最短路径问题
<br />小A在WOW中是个小术士.作为一名术士,不会单刷副本是相当丢脸的.所谓单刷副本就是单挑BOSS了,这么有荣誉感的事小A怎么会不做呢?于是小A来到了厄运之槌开始了单刷.小A看了看,厄运之槌的地图是一个N*M的矩形(N,M<=100),上面遍布了小怪和传送门.例如(1表示有小怪,0表示无小怪,大写字母表示传送门,传送门:例如,走到 B 传送门点将传送到另一个 B 传送点(次数无限,但每次进入传送点只传送过去,不会在传送回来)数据保证每个传送门有且仅有相对应的另一个传送门):<br /><br />而原创 2010-06-22 14:10:00 · 1399 阅读 · 0 评论 -
FBI树
<br /> <br />我们可以把由“0”和“1”组成的字符串分为三类:全“0”串称为B串,全“1”串称为I串,既含“0”又含“1”的串则称为F串。<br />FBI树是一种二叉树1,它的结点类型也包括F结点,B结点和I结点三种。由一个长度为2^N的“01”串S可以构造出一棵FBI树T,递归的构造方法如下:<br />1) T的根结点为R,其类型与串S的类型相同;<br />2) 若串S的长度大于1,将串S从中间分开,分为等长的左右子串S1和S2;由左子串S1构造R的左子树T1,由右子串S2构造R的右子树原创 2010-06-22 12:06:00 · 664 阅读 · 0 评论 -
亲戚 并查集
<br /> <br />若某个家族人员过于庞大,要判断两个是否是亲戚,确实还很不容易,现在给出某个亲戚关系图,求任意给出的两个人是否具有亲戚关系。<br />规定:x和y是亲戚,y和z是亲戚,那么x和z也是亲戚。如果x,y是亲戚,那么x的亲戚都是y的亲戚,y的亲戚也都是x的亲戚。<br /> <br />第一行:三个整数n,m,p,(n<=5000,m<=5000,p<=5000),分别表示有n个人,m个亲戚关系,询问p对亲戚关系。<br />以下m行:每行两个数Mi,Mj,1<=Mi,Mj<=N,表示A原创 2010-06-22 12:08:00 · 468 阅读 · 0 评论 -
医院设置(图)
<br /> <br />问题描述:<br /> 设有一颗二叉树,如图5-1:<br /> <br />其中,图中的数字表示节点中居名的人口。<br />圈边上数字表示节点编号,现在要求在某个节点上建立一个亿元,使所有居民所走的路程之和为最小,同时约定,相邻接点之间的距离为1。<br />如上图中,若医院建在:<br />1处,则距离和=4+12+2*20+2*40=136<br />3处,则距离和=4*2+13+20+40=81<br />……<br />输入:<br />第一行一个整数n,表示树的结点原创 2010-06-21 10:39:00 · 578 阅读 · 0 评论 -
树状数组的简单应用(夏夜砍树)
<br />所谓的树状数组其实是线段树的一种特殊情况。只有题目具有加减性质才能用树状数组。如果要在区间内最大最小值的就不能用了。所以能用树状数组解得一定可以用线段树,可以用线段树的不一定可以用树状数组。<br />然而树状数组具有的有点也是很明显的。虽然他和线段树修改和求和的复杂度都是logN。但是树状数组的常数更小,需要的空间也更少。而且最重要的是他就像并查集一样优美,一样的容易编写。<br /> <br />百度文库上有介绍数组数组的ppt:http://wenku.baidu.com/view/0f0原创 2010-11-02 22:00:00 · 601 阅读 · 0 评论