POJ 1724 ROADS DFS+剪枝
来源:互联网 发布:英雄杀礼包软件 编辑:程序博客网 时间:2024/05/20 03:41
要求求出花费在K一下的从1到n的最短路,注意是one-way roads。
DFS+剪枝即可。
#include <iostream>#include <cstdio>#include <cstring>#include <queue>#include <algorithm>#include <vector>#include <cmath>#include <set>#include <iomanip>#define inf 2000000using namespace std;int K,n,m;struct Edge{int u,v;int cost;int len;int next;}edge[22222];int head[22222];int visit[22222];int num;int ans;int addedge(int u,int v,int len,int cost){edge[num].u=u;edge[num].v=v;edge[num].cost=cost;edge[num].len=len;edge[num].next=head[u];head[u]=num++;}void dfs(int root,int l,int k){if(k>K){return;}if(l>ans){return ;}if(root==n){ans=min(ans,l);//cout<<ans<<endl;return ;}for(int i=head[root];i!=-1;i=edge[i].next){int v=edge[i].v;int len=edge[i].len;int cost=edge[i].cost;if(visit[i]==0){continue;}if(k+cost>K){continue;}visit[i]=0;dfs(v,l+len,k+cost);visit[i]=1;}return ;}int main(){int u,v,len,cost;while(scanf("%d",&K)!=EOF){scanf("%d%d",&n,&m);num=0;ans=inf;memset(visit,1,sizeof(visit));memset(head,-1,sizeof(head));for(int i=0;i<m;i++){scanf("%d%d%d%d",&u,&v,&len,&cost);addedge(u,v,len,cost);}dfs(1,0,0);if(ans==inf){cout<<"-1"<<endl;}else{printf("%d\n",ans);}}return 0;}
0 0
- POJ 1724 ROADS DFS+剪枝
- POJ 1724 ROADS【DFS+剪枝】
- POJ 1724 ROADS(DFS剪枝)
- [POJ 1724]ROADS[SPFA][DFS剪枝]
- (POJ 1724)ROADS <DFS + 简单剪枝>
- ROADS poj 1724(dfs + 剪枝)
- Poj 1724 Roads(DFS 可行性剪枝 最优性剪枝 向量)
- POJ 1724 ROADS (搜索+剪枝)
- poj-1724-ROADS(dfs)
- poj 1724 dfs+剪枝
- POJ - 1724 ROADS(bfs+剪枝)
- poj 1724 ROADS(dfs)
- POJ 1724 ROADS 启发式DFS
- POJ 1724 ROADS (DFS)
- POJ 1724 ROADS bfs || dfs || A*
- poj 1724 最短路变形 DFS+剪枝
- poj 2192 DFS+剪枝
- poj 2248 DFS+剪枝
- 验证码
- linux通过rdesktop连接windows远程桌面
- linux下的文件压缩与打包---compress,gzip,zcat,bzip2,bzcat,tar,find,tarfile,tarball
- Extjs 中处理日期的方法总结
- 通向架构师的道路(第四天)之Tomcat性能调优-让小猫飞奔
- POJ 1724 ROADS DFS+剪枝
- PL/SQL Developer导入、导出表结构和表数据
- shell 脚本实--集群环境配置检测
- Cocos2dx播放mp4文件(IOS和Android)
- 【铸造专用碳化硅】这是专用的不是业余的
- agsXMPP 实现原理
- iOS 绘画学习
- 工作周记
- 硬链接和符号链接的区别