PAT-A 1003. Emergency (25)
来源:互联网 发布:python安装后怎么用 编辑:程序博客网 时间:2024/06/04 00:32
注意点:
一个单源最短路算法,需要考虑两个条件,最短路和最多队伍,有优先级。用spfa。
代码:
#include <iostream>#define max_Int 1<<30using namespace std;struct Road{ int d; int l; };struct Line{ int p; int l; int t; };int main(){ int n, m, c1, c2; int team[500]; struct Road road[501][501]; struct Line line[100000]; int con[500]; int left, right; int i, j, i1, i2, i3, i4; int num, ans, minl; cin >> n >> m >> c1 >> c2; for (i = 0; i < n; i++) { cin >> team[i]; road[i][0].d = 0; con[i] = max_Int; } for (i = 0; i < m; i++) { cin >> i1 >> i2 >> i3; road[i1][0].d++; i4 = road[i1][0].d; road[i1][i4].d = i2; road[i1][i4].l = i3; road[i2][0].d++; i4 = road[i2][0].d; road[i2][i4].d = i1; road[i2][i4].l = i3; } left = 0; right = 0; con[c1] = 0; line[0].p = c1; line[0].l = 0; line[0].t = team[c1]; while (left <= right) { if (line[left].l > con[line[left].p]) { left++; continue; } for (i = 1; i <= road[line[left].p][0].d; i++) { if (line[left].l + road[line[left].p][i].l > con[road[line[left].p][i].d]) { continue; } else { con[road[line[left].p][i].d] = line[left].l + road[line[left].p][i].l; right++; line[right].p = road[line[left].p][i].d; line[right].l = con[road[line[left].p][i].d]; line[right].t = line[left].t + team[road[line[left].p][i].d]; } } left++; } minl = con[c2]; ans = 0; num = 0; for (i = 0; i <= right; i++) { if (line[i].p == c2 && line[i].l == minl) { num++; if (line[i].t > ans) ans = line[i].t; } } cout << num << " " << ans << endl; return 0;}
阅读全文
0 0
- PAT A 1003. Emergency (25)
- PAT(A) 1003. Emergency (25)
- PAT-A-1003. Emergency (25)
- PAT A 1003. Emergency (25)
- PAT-A-1003. Emergency (25)
- PAT-A-1003. Emergency (25)
- PAT-A 1003. Emergency (25)
- 1003. Emergency (25)-PAT
- (PAT)1003. Emergency (25)
- PAT 1003. Emergency (25)
- PAT 1003. Emergency (25)
- [PAT]1003. Emergency (25)
- 【PAT】1003. Emergency (25)
- PAT 1003. Emergency (25)
- PAT 1003. Emergency (25)
- PAT 1003. Emergency (25)
- 【PAT】1003. Emergency (25)
- PAT 1003. Emergency (25)
- redis 服务器初始化
- 231.Power of Two
- BSP文件copy到linux源生目录下并解压
- 服务器中Windows 平台安装 MongoDB
- JS翻转效果
- PAT-A 1003. Emergency (25)
- jquery异步请求ajax()之dataType参数讲解
- 对字符串的处理sizeof()/strlen
- http 协议
- 234.Palindrome Linked List
- 怎么进行面向对象设计(二)
- OpenCV + CentOS开发环境搭建
- 孙鑫C++教程学习记录
- Android工程师之Android面试大纲