- 博客(15)
- 资源 (36)
- 收藏
- 关注
原创 poj1275 差分约束难再建模
题意;Tehran的一家每天24小时营业的超市,需要一批出纳员来满足它的需要。超市经理雇佣你来帮他解决他的问题——超市在每天的不同时段需要不同数目的出纳员(例如:午夜时只需一小批,而下午则需要很多)来为顾客提供优质服务。他希望雇佣最少数目的出纳员。经理已经提供你一天的每一小时需要出纳员的最少数量——R(0), R(1), ..., R(23)。R(0)表示从午夜到上午1:00需要出
2012-07-31 21:53:14 3409
原创 poj-3159很神奇的一题-差分约束+spfa
这道题目和前面几篇思路一样,不用多说 问题是如果用spfa+队列,肯定tle,换为堆栈就可以了,这题目也就是从头不行,要从尾部开始,就是队列和栈的区别了。 总感觉这题有问题。正向超时,反向484ms。。。。代码:#include #define maxN 30005//最大边条数#define inf 0x7fffffff//最大距离struct Edge {
2012-07-28 09:42:01 724
原创 poj1716-差分约束+spfa
这题目和上题目1201一样,就只改一下权重。注意一点,这题目边比较多,哎,我开搭配100*10005,过了。后来想改为循环队列,没想到原来while(head 其他没什么了。。。总之记住一个原则,求最小值,>=,求最长路。求最大值,代码:#include #define maxN 10005//最大边条数#define inf 0x7fffffff//最大距离stru
2012-07-28 09:41:52 710
原创 poj 1201-差分约束+spfa
题意: 在区间[0,50000]上有一些整点,并且满足n个约束条件(u, v, w),即在区间[u, v]上至少有x个整点,问区间[0, 50000]上至少有几个整点。思路:spfa(邻接表)+差分约束。构造差分约束系统的关键:用dict[i]表示区间[0, i]上的整点数,则约束条件可化为dict[v] - dict[u-1] >= w,即dict[v] >= dict[u-1] + w
2012-07-28 09:41:39 1362
原创 poj3169 layout差分约束的证明。。。
在Acm论文中看到的,一起学习一下,至少解决了我不少疑问。3.3 例题3——Layout题意简述:当排队等候喂食时,奶牛喜欢和它们的朋友站得靠近些。FJ有N(2一些奶牛相互间存有好感,它们希望两者之间的距离不超过一个给定的数L。另一方面,一些奶牛相互间非常反感,它们希望两者间的距离不小于一个给定的数D。给出ML条关于两头奶牛间有好感的描述,再给出MD条关于两头奶牛间存有反感
2012-07-26 13:10:09 3484 2
原创 poj3169-所谓的差分约束,但是感觉题目各种问题
题目很好理解,转换为差分约束也好理解。 关键是差分约束是要n+1个点,多一个v0,但是如果按照差分去做,肯定会wa,因为这样做以后,样例肯定都过不了,想想看,v0到其他点距离为0,所以到v1最短为0,v4最短为0,怎么求都得不到最后的27啊????? 还有像vj>=vi(j >= i)这些约束不用加,这个好理解,证明题目中没给这一块的测试用例,数据弱没关系,但是如果你加上了,可能会
2012-07-26 08:40:23 1018 1
原创 poj1932-bellman、spfa
此题打过游戏的人理解起来不难,就是初始有个血量,然后每到一个房间或者加血或者减血,给出一个初始能量100的人,能否从1走到n,在这个过程中,血量都必须是大于0的。 这题目算法首先要判断能不能从1到达n,用floyd传递闭包然后计算一个最长路,保证每个点血量大于0,否则不能到达,还要求松弛的点能够到达n。。。具体见代码 此题用了两种方法,可以修改if(bellMan())或者
2012-07-24 22:11:23 901
原创 poj-3259 bellman-ford
题意:John的农场里N块地,M条路连接两块地,W个虫洞;路是双向的,虫洞是一条单向路,会在你离开之前把你传送到目的地,就是当你过去的时候时间会倒退Ts。我们的任务是知道会不会在从某块地出发后又回来,看到了离开之前的自己。简化下,就是看图中有没有负权环。解题:bellman_ford和spfa算法均可,但是实现效率bellman_ford更简单,也更容易,虽然spfa算法是be
2012-07-22 21:42:24 1222
原创 poj-2387 旧题重温
这道题目原来已经a过了,应该用的是dijstra算法这次用spfa。只需要注意一点,有重边,所以保存邻接矩阵的时候一定要判断一下。#include #define maxN 1002#define inf 1000000000int mat[maxN][maxN];//邻接矩阵bool flag[maxN][maxN];//标示矩阵int dis[maxN]
2012-07-22 00:50:45 1060
原创 poj-3013 透过现象看本质,其实都一样
这道题目咋一看就是最小生成树啊。题目描述大概是这样:KCm要准备一颗圣诞树,这棵树有一些节点和边组成。节点从1到n,根总是1.每个节点都有自己的总量,而边的价格是由边的单价乘以子孙节点的重量。求出这么一颗有n个节点的树,使花费最小。 很像最小生成树,仔细研究,没法这样做。因为每条边在找到这颗树之前很难计算它的价值。因为本来你算好的边的价值,但是在去掉某些边时,会导致边的价值
2012-07-21 15:07:14 1493 1
原创 poj-1847 之最短路
本题目就是简单的最短路 题目理解起来有点费劲,大概说一下吧!就是有n个交叉点,就当做有n个点就行,然后这些点和其他点有些路径,每个点是一个开关,开关只能有一个方向走一条路,而第一个数就是默认的开关指向,不用旋转。这单犯了个错,就是默认的指向实际上只需要旋转0次,而其他路径只需要旋转1次,无论是哪条,只需1次,当初以为,第二个1次,第3个2次。 题目给的实例3 2 1 /
2012-07-19 00:04:25 4027
原创 poj-1287 不是题目水,而是数据弱
这个题目很简单,就是最简单的最小生成树,并且用克鲁斯卡尔算法很容易。但是,题目中说的边可能是无限的(The number of possible routes is unlimited),如果边有很多,该如何办呢? 当然,这里直接开10000条以上就行了,因为测试用例有限,加入10^10条呢?这里说了最多50个点,那么最多也就1225条边,再多就是重复的,实际上我们只需要开这么大的
2012-07-17 13:53:02 628
原创 poj3268---spfa
最短路径。。。。由于点比较多1000,,如果dijstra算法 o(n^2)肯定超时,这里用spfa算法。由于1000点,没有用邻接表,内存略大。 算法很简单,还是正向建图,逆向建图,分别求出起点到其他点的最短距离,然后求和,就是从这点出发,然后再回来的的最短距离,最后求出最大值即可。代码:#include#define maxN 1001#define inf
2012-07-17 13:52:37 684
原创 邻接表-动态和静态的学习
上一篇用到了邻接表,这里学习一下数据结构。 我们知道图的保存方式有很多种,邻接矩阵adjMax【】【】,邻接表。。。。邻接矩阵适合稠密图,而邻接表在表示稀疏图时很节省内存。 而邻接表又有动态和静态之分,静态和动态就不多做解释了,动态就是有多少用多少,静态你要提前分配好够用的内存,一般会比实际用的大一些。。。。 下面是静态表的一个实例#include #inclu
2012-07-16 00:19:29 1924 2
原创 poj 1511----spfa
这道题目有点长,看了半天才看懂啥意思。就是有n个车站,m条路线,每条路线有一个价格。要求从起始站到每一站,然后再从每一站回去,求最少的钱数。 看起来就是最短路径的问题,就是求单源点到其他各点的最但距离(票价),然后建个反向图,求的返回的钱数。加起来就行了。 最短路径很多方法,Dijkstra算法,Bell-ford算法,floyd-washall,以及本题目用的spfa算法
2012-07-13 20:48:47 805
Csr_bluetooth_driver技术文档
2011-07-22
蓝牙HCI驱动开发中的BCSP和bccmd协议
2011-07-22
pojcodefor(3000-3799)
2011-04-21
pojcodefor(2000-2999)
2011-04-21
pojcodefor(1200-1999)
2011-04-21
pojcodefor(1100-1199)
2011-04-21
pojcodefor(1000-1099)
2011-04-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人