hdu 3411 (DFS+最短路)
来源:互联网 发布:剑三成女捏脸数据 云盘 编辑:程序博客网 时间:2024/05/22 10:26
点击打开链接
分析:
有n个城市,记为1~N,有m个城市,有些路收费,当c路走过时,收费为p,否则为r。
看到题目,我们首先想到先从第一个路开始,然后进行判断c,走过+p,没走过+r。然后进行求最小值
显然是最短路,又因为数据较小可以用DFS
注意这里加一个判定条件,因为每个城市课重复走,限制它的次数。。。
一般每个节点限制走一次是为了在一个环里面出现无限循环。
这里可以限制一定的次数,让它可以成环但有不至于出现无限循环的情况。。
#include"stdio.h"#include"string.h"struct node{int a,b,c,p,r;}A[11];int n,m,ans;int mark[11];int f;void dfs(int i,int w){int j;if(w>=ans||mark[i]>10)return ;if(i==n){if(ans>w)ans=w;f=1;return ;}mark[i]++;for(j=0;j<m;j++){if(A[j].a==i){if(mark[A[j].c])dfs(A[j].b,w+A[j].p);elsedfs(A[j].b,w+A[j].r);}}mark[i]--;}int main(){int i;while(scanf("%d%d",&n,&m)!=-1){for(i=0;i<m;i++)scanf("%d%d%d%d%d",&A[i].a,&A[i].b,&A[i].c,&A[i].p,&A[i].r);f=0;memset(mark,0,sizeof(mark));ans=999999999;dfs(1,0);if(f)printf("%d\n",ans);else printf("impossible\n");}return 0;}
- hdu 3411 (DFS+最短路)
- hdu 1572(dfs+最短路)
- 1142 hdu (最短路 + DFS)
- HDU 1242 dFS 找目标最短路
- hdu 3768 Shopping(DFS+最短路)
- HDU 2544 最短路 (单源最短路)
- HDU2544最短路(DFS/Dijkstra+heap)
- 迷宫问题、最短路(BFS,DFS)
- hdu1142(最短路+DFS)
- hdu 4771 求一点遍历所有给定点的最短路(bfs+dfs)
- HDU 1142 A Walk Through the Forest 最短路+DFS
- hdu 1548 A strange lift(最短路或DFS)
- hdu 1142 A Walk Through the Forest (最短路+dfs )
- hdu 5423 Rikka with Tree DFS 或最短路
- HDU - 3313 Key Vertex(在最短路上的DFS)
- hdu 3468 Treasure Hunting【Bfs最短路+Dfs+二分匹配】
- hdu 1874 (最短路)
- hdu 3499 (最短路)
- 整理c#托管资源和非托管资源区别
- sql server 2008不允许修改表结构
- 数据库oracle RAC,磁阵路径改变,造成启动错误CRS-4535 CRS-4000
- jdk与jre的区别
- IOS 上拉分页刷新--
- hdu 3411 (DFS+最短路)
- Oracle10g技术问题总结(五)windows操作系统下Oracle数据库启动与关闭的说明
- 用户"sa "登陆失败 SQLServer 错误18456----解决方法
- create_project.py
- Log图文详解(Log.v,Log.d,Log.i,Log.w,Log.e)的用法
- Oracle Job创建
- 设计模式:原型模式
- 冒泡排序和选择排序
- 我是特种兵2感悟