- 博客(13)
- 资源 (3)
- 收藏
- 关注
原创 [SBT]POJ 2761 Feed the dogs
题目链接:http://poj.org/problem?id=2761题意:给定一个序列,有N个数,给定M个询问,询问的形式为 a b c ,询问区间[a,b]内第c小的数。解题方法:一次性读入所有的询问,然后把询问进行排序,排序的顺序为终点小的在前,终点一样,起点大的在前,然后对排序后的每个询问进行处理,每次保证SBT中只有区间[a,b]的数(用插入和删除操作来保证),然后查询第K小。
2012-03-29 13:16:44 755
原创 [平衡树]BallIntheBox
题目还是牛耳杯程序设计大赛的D题,之前已经描述过,就不在赘述了。之前用AVL实现的,这里附上一个用SBT实现的版本,对比发现SBT实现更为简单,而且时空消耗略少。 搓长丑的SBT代码:#include#include#include#include#includeusing namespace std;const int MAXN = 100010;struct KE
2012-03-27 20:11:44 516
原创 [平衡树]牛耳杯程序设计大赛决赛D题——BallIntheBox
题目描述:Balls In The BoxTime limit: 1s Memory limit: 32768 kbProblem DescriptionThere are N boxes in Staginner’s house, and we mark them by 1,2,…,N. There are Ni(1The operations contain:1.
2012-03-27 11:55:44 924
原创 牛耳杯程序设计大赛总结
虽然是个小小的比赛,还是写一个总结吧。 不知不觉患上了疑似神经衰弱的病,头已经晕了4天了,状态也不怎么好,勉强能够做题。 也算是这次比赛悲剧的一个小小的因素吧。下面回顾整场比赛悲剧的过程: A. 输入若干个个点(xi,yi),统计其中不同点的个数,水题,直接哈希,然后统计。 2Y 莫名其妙超时一次。 B. 给定一个图,求起点到终点的最短路,最短路的节点数不能超过K。
2012-03-25 23:50:12 1504
原创 吴文虎图论学习日志——第二章
最短路径的算法及其应用: 算法有很多,包括上面没有讲到的和讲到的:SSSP(单源最短路径):1.标号法 2.Dijkstra(可以用heap优化) 3.Bellman_ford(可以检测负环) 4.SPFA(可以检测负环,还可以继续优化,不过还没学)所有点对的最短路径:1.可以求N次SSSP 2.Floyd算法 该章提到的应用问题: 1. 求图
2012-03-21 15:22:17 4654
原创 学习日志_最短路径之标号法
吴文虎图论中的一个求最短路的方法只需要O(ElogE)的时间复杂度就可以求出单源结点的所有最短路径, 实现的时候使用优先队列来维护可选的弧集,代码如下:#include#include#includeusing namespace std;const int MAXN = 110;struct gnode;vector g[MAXN];int mark[MAXN],d[M
2012-03-19 12:29:51 1391
原创 吴文虎-图论学习日志——第一章
这一章主要介绍了一些图的基本概念:1.顶点,边:图中的点就是顶点,连接顶点的线就是边。2.孤立点:没有任何边与之相连的顶点。3.图同构:给定两个图G1,G2,对于G1中的边(U1,V1)在G2中总能找到(U2,V2)与之相对应,且所有的边是一一对应的,那么这两个图是同构的4.自环:边(V,V)叫做自环5.简单图:不含自环的图叫做简单图
2012-03-17 18:42:39 4895
原创 [贪心]poj 1659 Frogs' Neighborhood
Frogs' Neighborhood Time Limit : 10000/5000ms (Java/Other) Memory Limit : 20000/10000K (Java/Other)Total Submission(s) : 5 Accepted Submission(s) : 1Special Judge Problem Description未名
2012-03-14 13:22:03 622
原创 [强连通分支]poj_1236_network of schools
题意:给定一个有向图,求最少要从几个结点开始能把图遍历完,最少添加多少条边,使得整个图强连通。先缩点,然后对于缩点以后的图,入度为0的点的个数就是第一问的解,第二问的解是入度为0结点个数和出度为0结点个数中的最大值,第二问参考的解题报告是:http://hi.baidu.com/oichampion/blog/item/1882abd7d86adec5a9ec9aa5.html
2012-03-13 15:03:06 862
原创 [割点问题]poj_1523_SPF
题目大意:给定一个网络,看是否有关节点存在(即割点,即去除该点后,图变成非连通图),如果存在输出该节点和去除该节点后连通子图的个数,如果不存在割点即输出没有割点存在。求割点直接用dfs解决即可,问题在于统计去除该割点后,连通子图的个数,其实在dfs时,遇到割点时,只要发现其儿子结点的low值比该割点的dfn值大或相等,那么去除该结点后,其儿子结点能到达的所有结点 必定构成一个连通子图,
2012-03-12 23:07:47 527
原创 求割点和桥的DFS
//无向图求割点和桥void dfs(int cur,int fa,int deep,int &time){ visit[cur] = 1; DFN[cur] = LOW[cur] = deep; int soncnt = 0; for(int i=0;i<g[cur].size();i++) { int v = g[cur][i]; if(!vis[v]
2012-03-12 09:19:55 2329
转载 无向图的连通性
先明白一些概念。割点:若一个点删除后(也就是与之相连的边统统去掉),无向图不再连通,那么此点称为割点。桥:若一条边断去后,无向图不再连通,那么此边称为桥。桥有一个很好的性质,就是DFS一个无向图,那么这个过程必定要经过桥。块:没有割点的无向图称为2-连通分支,也称作块。割点、桥均可以在DFS的过程中求得。那么,对于一个无向图有以下操作:1.将一个无向图的块缩成一个点。这个时
2012-03-12 08:48:16 2276
原创 SCC_Gabow
#include#include#include#include#includeusing namespace std;const int MAXN = 1001;vector g[MAXN];//adjliststack S,P;int belong[MAXN],vis[MAXN],indeg[MAXN],sccg[MAXN][MAXN],scccnt,disc[MAXN];
2012-03-02 12:56:10 512
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人