博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UVa 336 - A Node Too Far
阅读量:6094 次
发布时间:2019-06-20

本文共 1482 字,大约阅读时间需要 4 分钟。

  题目大意:在计算机网络中,每条信息都有一个TTL值,在信息到达一个节点时,TTL值首先减1,如果TTL为0,则丢弃该信息报文。给一个网络的配置,给定源点和TTL值,判断该网络中有多少节点不可到达。

  无权图(无向)上的单源最短路问题,可用BFS解决。

1 #include 
2 #include
3 #include
4 #include
5 #include
6 using namespace std; 7 #define NODEN 35 8 9 map
vertex;10 11 void new_vertex(int x)12 {13 if (!vertex.count(x))14 {15 int t = vertex.size() + 1;16 vertex[x] = t;17 }18 }19 20 int main()21 {22 #ifdef LOCAL23 freopen("in", "r", stdin);24 #endif25 int n, kase = 0;26 while (scanf("%d", &n) && n)27 {28 int x, y;29 vertex.clear();30 vector
G[NODEN];31 for (int i = 0; i < n; i++)32 {33 scanf("%d%d", &x, &y);34 new_vertex(x);35 new_vertex(y);36 G[vertex[x]].push_back(vertex[y]);37 G[vertex[y]].push_back(vertex[x]);38 }39 int s, ttl, cnt;40 int dist[NODEN];41 while (scanf("%d%d", &s, &ttl) && (s || ttl))42 {43 int st = vertex[s];44 queue
q;45 memset(dist, -1, sizeof(dist));46 dist[st] = 0;47 q.push(st);48 cnt = 1;49 while (!q.empty())50 {51 int u = q.front();52 q.pop();53 for (int i = 0; i < G[u].size(); i++)54 {55 int v = G[u][i];56 if (dist[v] != -1) continue;57 dist[v] = dist[u] + 1;58 if (dist[v] > ttl) goto s;59 q.push(v);60 cnt++;61 }62 }63 s: int ans = vertex.size() - cnt;64 printf("Case %d: %d nodes not reachable from node %d with TTL = %d.\n", ++kase, ans, s, ttl);65 }66 }67 return 0;68 }69
View Code

 

转载于:https://www.cnblogs.com/xiaobaibuhei/p/3320385.html

你可能感兴趣的文章
eclipse中访问不了tomcat首页server Locations变灰无法编辑
查看>>
setCharacterEncoding编码问题
查看>>
第190天:js---String常用属性和方法(最全)
查看>>
SQL的六种约束
查看>>
JavaScript-手机中访问页面判断
查看>>
第十次 Scrum Meeting
查看>>
windows Sever 2012下Oracle 12c安装配置方法图文教程
查看>>
python _、__和__xx__的区别
查看>>
flask内容学习第三天(flak中的csrf跨站请求)
查看>>
检查磁盘利用率并且定期发送告警邮件
查看>>
MWeb 1.4 新功能介绍二:静态博客功能增强
查看>>
linux文本模式和文本替换功能
查看>>
Windows SFTP 的安装
查看>>
摄像机与绕任意轴旋转
查看>>
rsync 服务器配置过程
查看>>
查看linux发行版本方法
查看>>
写CV中
查看>>
【原】用PHP搭建基于swoole扩展的socket服务(附PHP扩展的安装步骤及Linux/shell在线手册)...
查看>>
jquery仿凡客诚品图片切换的效果实例代码
查看>>
alarm rtc
查看>>