【uva10917】Walk Through the Forest (最短路)
2016-03-21 13:49
281 查看
题目:
gbn最近打算穿过一个森林,但是他比较傲娇,于是他决定只走一些特殊的道路,他打算只沿着满足如下条件的(A,B)道路走:存在一条从B出发回家的路,比所有从A出发回家的路径都短。你的任务是计算一共有多少条不同的回家路径。其中起点的编号为1,终点的编号为2.
分析:
先求出每个点到终点的距离,根据题目要求找d[u]>d[v]的路径(u,v)走,计算路径数即可。
代码如下:
uva 10917
2016-03-21 13:49:15
gbn最近打算穿过一个森林,但是他比较傲娇,于是他决定只走一些特殊的道路,他打算只沿着满足如下条件的(A,B)道路走:存在一条从B出发回家的路,比所有从A出发回家的路径都短。你的任务是计算一共有多少条不同的回家路径。其中起点的编号为1,终点的编号为2.
分析:
先求出每个点到终点的距离,根据题目要求找d[u]>d[v]的路径(u,v)走,计算路径数即可。
代码如下:
#include<cstdio> #include<cstdlib> #include<cstring> #include<iostream> #include<algorithm> #include<queue> using namespace std; #define Maxn 1010 struct node { int x,y,c,next; }t[2*Maxn*Maxn];int len; int n,m; int first[Maxn],dis[Maxn],f[Maxn]; bool inq[Maxn]; void ins(int x,int y,int c) { t[++len].x=x;t[len].y=y;t[len].c=c; t[len].next=first[x];first[x]=len; } void spfa(int s) { queue<int > q; while(!q.empty()) q.pop(); q.push(s); memset(dis,63,sizeof(dis)); memset(inq,0,sizeof(inq)); dis[s]=0; while(!q.empty()) { int x=q.front();q.pop(); for(int i=first[x];i;i=t[i].next) { int y=t[i].y; if(dis[y]>dis[x]+t[i].c) { dis[y]=dis[x]+t[i].c; if(!inq[y]) {inq[y]=1;q.push(y);} } } inq[x]=0; } } int ffind(int x) { if(f[x]!=-1) return f[x]; f[x]=0; for(int i=first[x];i;i=t[i].next) if(dis[x]>dis[t[i].y]) { f[x]+=ffind(t[i].y); } return f[x]; } int main() { while(1) { scanf("%d",&n); if(n==0) break; scanf("%d",&m); len=0; memset(first,0,sizeof(first)); for(int i=1;i<=m;i++) { int x,y,c; scanf("%d%d%d",&x,&y,&c); ins(x,y,c);ins(y,x,c); } spfa(2); memset(f,-1,sizeof(f)); f[2]=1; ffind(1); printf("%d\n",f[1]); } return 0; }
uva 10917
2016-03-21 13:49:15
相关文章推荐
- Azure机器学习入门(二)创建Azure机器学习工作区
- Delphi WebBrowser 无法调用当前浏览器的版本 --转
- Oracle定时执行存储过程
- 最大公约数和最小公倍数
- 数据库的锁机制
- 使用C++日志库log4cplus
- cropper插件实现头像截取
- 使用C++日志库log4cplus
- apache http + php 服务模式中, Basic认证的基本配置
- windows系统间pc同步数据
- 蓝桥杯--基础练习
- [转] Webpack 入门指迷
- hdu 4647 Another Graph Game 贪心
- linux2.6内核的DAC数据结构(传统9Bit模式、ACL模式)
- Nginx服务器的反向代理proxy_pass配置方法讲解
- AS混淆基本配置解释及语法
- 日常收集整理正则表达式验证大全
- Tell me about yourself
- 并发之痛 Thread,Goroutine,Actor
- 字符串驻留