POJ-1724-ROADS
来源:互联网 发布:淘宝客服简历 编辑:程序博客网 时间:2024/05/03 07:12
POJ-1724-ROADS
http://poj.org/problem?id=1724
单向边最短路问题,但是每条边都有一个费用,要求你的最短路方案的总的花费不能超过限制,深搜即可
#include<stdio.h>#include<string.h>#include<stdlib.h>#define M 10000#define INF 99999999struct edge{int v;int len;int toll;int next;}edges[4*M];int edgenum;int visit[101];int head[101];int minilen,totallen,totalcost;int n,k,reach;void addEdge(int a,int b,int len,int t){edges[edgenum].v=b;edges[edgenum].len=len;edges[edgenum].toll=t;edges[edgenum].next=head[a];head[a]=edgenum;edgenum++;}void dfs(int index){int i;if(index==n){reach=1;if(totallen<minilen)minilen=totallen;return;}for(i=head[index];i!=-1;i=edges[i].next){if(!visit[edges[i].v]&&totallen+edges[i].len<minilen&&totalcost+edges[i].toll<=k){visit[edges[i].v]=1;totallen+=edges[i].len;totalcost+=edges[i].toll;dfs(edges[i].v);visit[edges[i].v]=0;totallen-=edges[i].len;totalcost-=edges[i].toll;}}}int main(){int r;int i,s,d,len,t;scanf("%d%d%d",&k,&n,&r);for(i=1;i<=n;i++)head[i]=-1;for(i=1;i<=r;i++){scanf("%d%d%d%d",&s,&d,&len,&t);addEdge(s,d,len,t);}memset(visit,0,sizeof(visit));totallen=totalcost=0;reach=0;minilen=INF;visit[1]=1;dfs(1);if(reach==0)printf("-1\n");elseprintf("%d\n",minilen); return 0;}
- POJ 1724 ROADS
- POJ 1724 ROADS
- poj 1724 ROADS
- Poj 1724 ROADS
- POJ-1724-ROADS
- poj 1724 ROADS
- POJ 1724 ROADS
- POJ-1724-ROADS
- POJ 1724 ROADS (bfs)
- poj 1724 ROADS
- POJ 1724 ROADS
- POJ 1724 ROADS
- POJ 1724 ROADS
- POJ 1724 ROADS
- POJ 1724--ROADS
- poj 1724 ROADS
- poj 1724 ROADS
- POJ-1724 ROADS
- POJ-1087-A Plug for UNIX
- ClistCtrl 获得选中项的方法
- 九月十月百度人搜,阿里巴巴,腾讯华为小米搜狗笔试面试六十题
- Android 中的framebuffer和SurFaceFlinger的关系
- 业内网站导航
- POJ-1724-ROADS
- 《PHP---使用回调函数实现数组的筛选》
- 隐于市的胖子--苦逼IT们,过来看看
- Android 中的 framebuffer
- 管理信息系统导论
- Shaping Regions //附错误解法
- 按位异或运算符^
- 华山论贱
- 一个极品贱的科长