摘要: 题意: 知道了一些出租车任务的时间,每个任务需要一辆出租车从该任务的起点到终点,有些任务有时间上的冲突,问最少需要多少 辆出租车能完成任务。分析: 最小路径覆盖。 如果两个任务没有冲突,就在两个任务之间连一条边,找出最少的路径条数来覆盖所有点,(一条路径只需要一辆车)。 最小路径覆盖 = 总权 - 最大匹配#include<stdio.h>#include<string.h>struct node{ int to,next;}e[1000000];int tot;int head[505];void add(int s,int u){ e[tot].to=u; e[to 阅读全文
posted @ 2012-08-12 23:19 'wind 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 题意: 已知一个有 N 个节点 M 条边的无向图,问最短路和比最短路长度大1 的次短路共有多少条。分析: 在原来的dijkstra()上加一点变动,d[i][0]记录最短路的长度,d[i][1]记录次短路的长度,dp[i][0] 到达当前点最短路的条数,dp[i][1]到达当前点次短路的条数。View Code /************************************************************************************ 采用dijstra算法的思想,每次从dis[N][2]中选择一个未被标记且值最小的点dis[v][p] (可能.. 阅读全文
posted @ 2012-08-12 10:50 'wind 阅读(209) 评论(0) 推荐(0) 编辑