上一页 1 2 3 4 5 6 7 8 ··· 10 下一页
摘要: SPFA两个著名优化(SLF和LLL):SPFA 是按照 FIFO 的原则更新距离的, 没有考虑到距离标号的作用。实现中 SPFA 有两个非常著名的优化: SLF 和 LLL。SLF: Small Label First 策略. (比较常用)实现方法:设队首元素为, 队列中要加入节点, 在时加到队首而不是队尾, 否则和普通的 SPFA 一样加到队尾.LLL: Large Label Last 策略. (不太常用)设队列 Q中的队首元素为 i,距离标号的平均值为,每次出队时,若,把 i移到队列末尾,如此反复,直到找到一个使,将其出队。话说某次在群里问过关于SLF优化的实现问题,木人理我。。。 。 阅读全文
posted @ 2012-09-07 20:16 pony1993 阅读(7824) 评论(1) 推荐(5) 编辑
摘要: 使用方法:nth_element(start, start+n, end)使第n大元素处于第n位置(从0开始,其位置是下标为n的元素),并且比这个元素小的元素都排在这个元素之前,比这个元素大的元素都排在这个元素之后,但不能保证他们是有序的。代码:1#include<algorithm>2#include<iostream>3#include<cstring>4#include<cstdio>5usingnamespacestd;6constintN=101;7chars[N];8intmain()9{10intlen,n;11gets(s);12 阅读全文
posted @ 2012-09-05 09:51 pony1993 阅读(3681) 评论(0) 推荐(1) 编辑
摘要: 好多天以前碰到的,当时懒得写博客,今天没事,记录下吧。1#include<algorithm>2#include<iostream>3#include<cstring>4#include<cstdio>5usingnamespacestd;6constintN=101;7chars[N];8intmain()9{10intlen;11gets(s);12len=strlen(s);13sort(s,s+len);14puts(s);15while(next_permutation(s,s+len))16{17puts(s);18}19return 阅读全文
posted @ 2012-09-05 09:27 pony1993 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 把单词的第一个字母和最后一个字母作为点,由第一个字母向最后一个字母连一条有向边,问题转化为判断一个有向图是否存在欧拉道路有向图存在欧拉道路的条件: 在忽略边的方向后,图必须是连通的,同时最多只能有两个点的入度不等于出度,而且必须是其中一个点的出度刚好比入度大1(把它作为起点),另一个的入度比出度大1(把它作为终点).代码:1#include<iostream>2#include<cstring>3#include<cstdio>4usingnamespacestd;5constintN=27;6intin[N],out[N],use[N],set[N];7i 阅读全文
posted @ 2012-09-05 08:27 pony1993 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 定义:欧拉回路:每条边恰好只走一次,并能回到出发点的路径欧拉路径:经过每一条边一次,但是不要求回到起始点①首先看欧拉回路存在性的判定:一、无向图每个顶点的度数都是偶数,则存在欧拉回路。二、有向图(所有边都是单向的)每个节顶点的入度都等于出度,则存在欧拉回路。三.混合图欧拉回路 混合图欧拉回路用的是网络流。 把该图的无向边随便定向,计算每个点的入度和出度。如果有某个点出入度之差为奇数,那么肯定不存在欧拉回路。因为欧拉回路要求每点入度 = 出度,也就是总度数为偶数,存在奇数度点必不能有欧拉回路。 好了,现在每个点入度和出度之差均为偶数。那么将这个偶数除以2,得x。也就是说,对于每一个点,只要... 阅读全文
posted @ 2012-09-05 08:01 pony1993 阅读(805) 评论(0) 推荐(0) 编辑
摘要: 这道题是经典的差分约束系统,这道题可以看到明确的其源点1,所以求解的是从1出发终点为n的最短路。差分约束系统有两种方式可求解,最短路和最长路。当我们把不等式整理成d[a]+w<=d[b]时,我们求最长路。整理成d[a]+w>=d[b]时,我们求最短路。当求最短路时,我们通常要把各点距离初始化为正无穷,求最短路,把各点距离逐渐减小,直到符合所有不等式。代码:1#include<algorithm>2#include<iostream>3#include<cstring>4#include<cstdio>5#include<queu 阅读全文
posted @ 2012-09-01 21:26 pony1993 阅读(250) 评论(0) 推荐(0) 编辑
摘要: 在一个差分约束系统(system of difference constraints)中,线性规划矩阵A的每一行包含一个1和一个-1,A的其他所有元素都为0。因此,由Ax≤b给出的约束条件是m个差分约束集合,其中包含n个未知量,对应的线性规划矩阵A为m行n列。每个约束条件为如下形式的简单线性不等式:xj-xi≤bk。其中1≤i,j≤n,1≤k≤m。 例如,考虑这样一个问题,寻找一个5维向量x=(xi)以满足: 这一问题等价于找出未知量xi,i=1,2,…,5,满足下列8个差分约束条件:x1-x2≤0x1-x5≤-1x2-x5≤1x3-x1≤5x4-x1≤4x4-x3≤-1x5-x3≤-3x5. 阅读全文
posted @ 2012-09-01 19:43 pony1993 阅读(3015) 评论(0) 推荐(3) 编辑
摘要: 题目链接:http://poj.org/problem?id=1861求出最小生成树边的个数,最大边权,和所有边。代码:#include<algorithm>#include<iostream>#include<cstring>#include<cstdio>usingnamespacestd;constintN=1001;intmap[N],ans[N];intnum,maxn,k,i;structedge{inta;intb;intvalue;}p[N*N];intfind(intx){intr=x;while(r!=map[r]){r=ma 阅读全文
posted @ 2012-08-17 19:28 pony1993 阅读(298) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4379多么简单的一道题,比赛的时候竟然想着用数组存上,结果MLE了,然后就一直在纠结他的那句every pair of (Yi, Yj) satisfies Yi+ Yj<= L (1 ≤ i < j ≤ m),and every Yi<= L (1 ≤ i ≤ m )。。。。思路:从1-n算出Xi ,如果<=L/2,sum++,算的过程中记下<=L/2的最大值和>L/2的最小值,如果这两个值的和<=L,sum++。。代码:1#include<iost 阅读全文
posted @ 2012-08-17 08:38 pony1993 阅读(298) 评论(0) 推荐(0) 编辑
摘要: 1001显然,题目给的是一个0/1规划模型。解题的关键在于如何看出这个模型的本质。3个条件明显在刻画未知数之间的关系,从图论的角度思考问题,容易得到下面3个结论:1.X12+X13+...X1n=1于是1号节点的出度为12..X1n+X2n+...Xn-1n=1于是n号节点的入度为13.∑Xki=∑Xij于是2~n-1号节点的入度必须等于出度于是3个条件等价于一条从1号节点到n号节点的路径,故Xij=1表示需要经过边(i,j),代价为Cij。Xij=0表示不经过边(i,j)。注意到Cij非负且题目要求总代价最小,因此最优答案的路径一定可以对应一条简单路径。最终,我们直接读入边权的邻接矩阵,跑一 阅读全文
posted @ 2012-08-16 19:43 pony1993 阅读(296) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 10 下一页

View My Stats