题目链接:

  Lightoj  1174 - Commandos

题目描述:
  有一军队秉承做就要做到最好的口号,准备去破坏敌人的军营。他们计划要在敌人的每一个军营里都放置一个炸弹。军营里有充足的士兵,每个士兵都可以携带充足的炸弹,问这个军队完成任务最少需要时间?(假设士兵在往敌军帐篷里放炸弹时,敌军不会防御。敌人是猪嘛?这是在和猪战斗嘛?

解题思路:
  水题,求士兵完成任务的最短时间,也就是说每个士兵执行任务的时候只能选择最优路径咯。但是又要满足每个点都要被走过,所以就要求出能覆盖所有点的最短路径里最长一条的长度咯。只需要从起点bfs一遍所有的点,然后从终点bfs一遍所有的点。辣么从起点到终点并且经过x的最短路径长度就是两次bfs出来的结果和咯。

 #include <queue>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std; const int maxn = ;
struct node
{
int to, next;
}edge[maxn*maxn];
int head[maxn], tot, a[maxn], b[maxn]; void Add (int from, int to)
{
edge[tot].to = to;
edge[tot].next = head[from];
head[from] = tot ++;
} void bfs (int s, int vis[])
{
queue <int> Q;
Q.push(s);
vis[s] = ;
while (!Q.empty())
{
int u = Q.front();
Q.pop();
for (int i=head[u]; i!=-; i=edge[i].next)
{
int v = edge[i].to;
if (vis[v]==-)
{
vis[v] = vis[u] + ;
Q.push (v);
}
}
}
} int main ()
{
int t, n, r, s, e, cas = ;
scanf ("%d", &t); while (t --)
{
scanf ("%d %d", &n, &r);
memset (head, -, sizeof(head));
tot = ; for (int i=; i<r; i++)
{
int u, v;
scanf ("%d %d", &u, &v);
Add (u, v);
Add (v, u);
} scanf ("%d %d", &s, &e);
memset (a, -, sizeof(a));
memset (b, -, sizeof(b));
bfs (s, a);
bfs (e, b); int ans = ;
for (int i=; i<n; i++)
ans = max (ans, a[i]+b[i]);
printf("Case %d: %d\n", cas++, ans);
}
return ;
}

最新文章

  1. query语句的拼接.
  2. win10U盘 安装
  3. hibernate----N-N--(人与地点)
  4. xcode8 导入 dylib
  5. C#获取管理员权限
  6. wordpress数据库优化wp_posts表 OPTIMIZE
  7. MVC实用架构设计:总体设计
  8. 关于js关闭浏览器技术细谈
  9. 详解JavaScript对象继承方式
  10. Mac os 下brew的安装与使用—— Homebrew
  11. 对excel文件的读取
  12. Java过滤掉字符串中的html标签、style标签、script标签
  13. 微信小程序-开心大转盘(圆盘指针)代码分析
  14. linux:ubuntu安装mysql(二)--推荐
  15. 如何判断ScrollView滑动方向
  16. 网站目录下多出的 core 文件
  17. groupadd命令详解
  18. JAVAEE——Lucene基础:什么是全文检索、Lucene实现全文检索的流程、配置开发环境、索引库创建与管理
  19. python 中的Array,Value及内存共享
  20. saltstack之keepalived的安装配置

热门文章

  1. java去空格
  2. paramiko连接sshd使用的hostkey
  3. codeforces 394E Lightbulb for Minister 简单几何
  4. 【iOS系列】-oc中特有的语法
  5. qemu所支持的网卡
  6. Virtual IP address
  7. 包管理 import debug 模块管理 module
  8. Multi-threading Android Apps for Multi-core Processors – Part 1 of 2
  9. Recovery启动流程(1)--- 应用层到开机进入recovery详解
  10. hdu 1719