pat 1003
来源:互联网 发布:淘宝lol代练可靠吗 编辑:程序博客网 时间:2024/05/01 17:15
题意:
就是给你一张图, 求一点到另外一点的花费最短时间的路径,如果存在多条,那么选取其中的价值最大的那一条
简单的搜索题,直接附代码(找自己的代码挺麻烦的,代码是自己的一个组员写的)
#include<stdio.h>#define MAXVER 501#define MAXEDG 12501typedef struct{ int vex[MAXVER];//teams in every city int arc[MAXVER][MAXVER];//length of road int N, M;}Mgraph;Mgraph g;int visited[MAXVER], c1, c2, count, max, min = 66235;void read(){ int i, j, r, c; scanf("%d%d%d%d", &(g.N), &(g.M), &c1, &c2); for(i = 0; i < g.N; i++)//the number of teams in i city scanf("%d", &g.vex[i]); for(i = 0; i < MAXVER; i++)//init, make every roads be 0 for(j = 0; j < MAXVER; j++){ g.arc[i][j] = 0; } for(i = 0; i < g.M; i++){//length of the road scanf("%d%d%d", &r, &c, &j); g.arc[r][c] = g.arc[c][r] = j; }}void dfs(int now, int right, int team){ int i; if(right > min) return; if(now == c2) { if(right == min){ count ++; if(team >= max) max = team; } if(right < min){ min = right; count = 1; max = team; } return ; } for(i = 0; i < g.N; i++){ if(!visited[i] && g.arc[now][i] > 0) { visited[i] = 1; dfs(i, right + g.arc[now][i], team + g.vex[i]); visited[i] = 0; } }}int main(){ //freopen("in.txt", "r", stdin); read();// if(c1 == c2)// printf("1 g.vex[c1]");// else{ visited[c1] = 1; dfs(c1, 0, g.vex[c1]); printf("%d %d", count, max); // } return 0;}
0 0
- pat 1003
- pat 1003
- PAT 1003
- pat 1003
- PAT 1003
- pat 1003
- PAT 1003
- pat 1003
- PAT 1003
- PAT 1003
- PAT 1003
- 浙江大学pat 1003
- pat advanced 1003
- 浙大pat Advance 1003
- pat(basic level) 1003
- PAT basic 1003
- Pat 1003 Emergency (25)
- PAT Basic 1003
- 树莓派 Archlinux 的国内更新源以及 8188EU 的网卡驱动
- iOS Dev (45) iOS图标与切片处理工具Prepo
- eclipse不能启动的解决方案
- CentOS硬盘安装方法
- 使用 FSharpx.TypeProviders.Excel 类型提供程序的方法
- pat 1003
- ubuntu使用记录(一)
- LeetCode 061 Rotate List
- 对给定日期计算星期几
- mysql 慢查询日志
- pat 1004
- 如何实现批处理的连续调用?<一星>
- 1045. Favorite Color Stripe (30)
- Linux下可以批注,高亮的PDF阅读器