poj 3216 最短路+最小路径
来源:互联网 发布:软件开发培训费用 编辑:程序博客网 时间:2024/06/05 19:14
开始的时候,没有注意到最短路(因为有些城市本来是不可以直达的,但是floyd一次之后,本来不能直达的,可以路过其他城市,再到达目的地),wa了一次,
先用floyd求出来,然后就是最小路径的问题了
图论给我的感觉,构图只有你想不到,没有做不到,这从侧面印证了图论的强大。。。。题还是做得太少了
#include<stdio.h>#include<string.h>#include<vector>#define INF 1<<25#define val 500using namespace std;typedef struct node {int block,cost,deadline;}job;int match[val],n,m,map[21][21];bool in[val];vector<int> link[val];vector<job> node;void create_link();//构图int hungary();//最大匹配int main(){int ans;while(scanf("%d %d",&n,&m)&&n+m){node.clear();create_link();ans=hungary();printf("%d\n",node.size()-ans);//最小路径覆盖=定点数-最大匹配}return 0;}void create_link(){int i,k,j,a,b,c,end;job p;node.clear();for(i=1;i<=n;i++)for(j=1;j<=n;j++){scanf("%d",&map[i][j]);if(map[i][j]==-1) map[i][j]=INF;}for(k=1;k<=n;k++)//floydfor(i=1;i<=n;i++)for(j=1;j<=n;j++)if(map[i][j]>map[i][k]+map[k][j])map[i][j]=map[i][k]+map[k][j];for(i=0;i<m;i++) link[i].clear();for(i=0;i<m;i++){scanf("%d %d %d",&a,&b,&c);p.block=a;p.deadline=b;p.cost=c;node.push_back(p);}for(i=0;i<node.size();i++){if(i==j) continue;end=node[i].deadline+node[i].cost-1;for(j=0;j<node.size();j++){if(map[node[i].block][node[j].block]==-1) continue;if(end+map[node[i].block][node[j].block]<node[j].deadline)link[i].push_back(j);}}}int hungary(){bool dfs(int);int i,sum=0;memset(match,-1,sizeof(match));for(i=0;i<node.size();i++){memset(in,false,sizeof(in));if(dfs(i)) sum++;}return sum;}bool dfs(int x){int i,index,temp;for(i=0;i<link[x].size();i++){index=link[x][i];if(!in[index]){in[index]=true;temp=match[index];match[index]=x;if(temp==-1||dfs(temp)) return true;match[index]=temp;}}return false;}
- poj 3216 最短路+最小路径
- POJ 2253 Frogger【最短路变形——路径上最小的最大权】
- HDU 3991 最短路+最小路径覆盖
- POJ 3216 Repairing Company 最少路径覆盖+floyd最短路
- POJ 2263 最短路 路径上最小值
- 【最短路+最小费用】hdu 3790 最短路径问题
- poj 1122 最短路+路径追踪(消防路径)
- hdu 4606(线段相交 + 最短路 + 最小路径覆盖)
- hdoj 1385 输出 最短路的最小字典序路径
- HDOJ 5294 Tricks Device 最短路(记录路径)+最小割
- A1220. 复杂的大门(陈许旻) 最小路径覆盖 最短路
- Poj 2253 + 1797 + 1502 最短路的最小最大值问题
- poj 3967 Ideal Path 字典序最小最短路
- POJ 1797 Heavy Transportation(最小生成树或最短路)
- poj 2457 Part Acquisition 【spfa最短路 + STL路径输出】
- POJ 2457--Part Acquisition 【spfa最短路 + STL路径输出】
- poj 3216 (最小路径覆盖)
- POJ 3463 Sightseeing Dijkstra最短路&最短路-1的路径数(计数)
- 查询指定用户执行的sql
- jquery addClass(添加一个css样式)
- Extjs4 grid根据model自动生成列
- C/C++中如何获取数组的长度?
- RPC协议
- poj 3216 最短路+最小路径
- Mario开发流程(一)
- struts2 + ajax + json的结合使用,实例讲解
- 组态软件开发工程的一般步骤
- 不要忘记你的目标
- html 动态显示元素文本
- WIP 完工入库单
- Oracle 数据库的备份与恢复 - ChinaUnix.net
- Java的poi技术读取和导入Excel