炸学校

Time Limit: 2000ms   Memory limit: 65536K  有疑问?点这里^_^

题目描述

“小儿么小二郎,背着那炸弹炸学校,不怕那太阳晒,也不怕那风雨狂。”估计这首歌我们大家都耳熟能详了。
于是就有一群小学生们商量着炸学校。要把本市的小学的都给炸掉。于是他们商量好了一个出发点source与集合点sink。然后有无数个小学生,n-2个学校,每个小学生都从出发点出发,负责背着一个炸弹,然后把炸弹偷偷放置在一个学校里,然后返回到集合点。
由于这群小学生们还急着回去玩撸啊撸,所以他们想尽快把所有学校都炸完。这里有m条无向路,每条路都连接着u和v这两个学校,经过这条路的时间花费为t。这些小学生只能从这些路中经过。他们同时从出发点出发,他们想知道炸完所有学校并且都回到集合点的最少需要多长时间。

输入

第一行为一个整数T,表示T组测试数据。

第二行为整数n(3<=n<=1000),代表学校的数量(包括出发点和集合点),还有整数m(m<10^5),表示有多少条无向路。

然后接下来是m行,每一行的三个整数分别是u,v,t(0<=u,v, u!=v, 0<=t<=10^5)

然后给出两个整数source和sink,分别代表出发点和集合点。(0<=source,sink)。

输入数据保证可以炸毁所有学校,并且可以到达集合点。不保证没有重边。

输出:

输出

对于第x组数据输出一行“Case #x:”,然后是一个整数表示最少需要的时间。

示例输入

1
5 5
1 0 1
1 2 3
1 3 3
4 2 2
3 4 1
4 2

示例输出

Case #1: 9

提示

炸完所有学校的最短时间,即是最慢的那一个人炸完所用的时间,每个点求一次最短路,果断的TLE了,,,,其实两遍即可,然后记下到每个点的距离
#include <iostream>
#include <cstring>
#include <cstdio>
#include <string>
#include <stdlib.h>
#include <queue>
#include <algorithm>
using namespace std;
const int MAX = 999999;
int a[1010][1010];
int b[1010],v[1010];
int flag;
int v1[1010];
int v2[1010];
int n,m;
void Dijkstra(int s)
{int k;memset(b,0,sizeof(b));for(int i=0; i<n; i++)v[i]=a[s][i];b[s]=1;v[s]=0;int min=0;for(int i=0; i<n-1; i++){min=MAX;for(int j=0; j<n; j++){if(!b[j]&& min > v[j]){min=v[j];k=j;}}if(min==MAX)break;b[k]=1;for(int j=0; j<n; j++){if(!b[j] && v[j] > v[k]+a[k][j]){v[j]=v[k]+a[k][j];}}}if(flag){for(int i=0;i<n;i++)v1[i]=v[i];}else{flag++;for(int i=0;i<n;i++)v2[i]=v[i];}}
int main()
{int T;scanf("%d",&T);for(int r=1; r<=T; r++){flag=0;memset(a,MAX,sizeof(a));for(int i=0;i<n;i++)a[i][i]=0;scanf("%d%d",&n,&m);for(int i=0; i<m; i++){int u,v,w;scanf("%d%d%d",&u,&v,&w);if(w<a[u][v]){a[u][v]=w;a[v][u]=w;}}int s,e;scanf("%d%d",&s,&e);Dijkstra(s);Dijkstra(e);int ans=-1;for(int i=0;i<n;i++){if(ans<v1[i]+v2[i])ans=v1[i]+v2[i];}printf("Case #%d: %d\n",r,ans);}return 0;
}

ACM知识竞)赛 之 SDUT3034 炸学校(最短路Dijkstra)相关推荐

  1. 2015年ACM长春区域赛比赛感悟

    距离长春区域赛结束已经4天了,是时候整理一下这次比赛的点点滴滴了. 也是在比赛前一周才得到通知要我参加长春区域赛,当时也是既兴奋又感到有很大的压力,毕竟我的第一场比赛就是区域赛水平,还是很有挑战性的. ...

  2. 大专普通本科、搞算法的(蓝桥杯、ACM、天梯赛)-后续成长之路

    2021年1月 1.首先要清楚算法究竟能为程序作出什么样的贡献: 请查阅:<[算法之美]改变世界的十位算法大师> url:https://blog.csdn.net/kexuanxiu11 ...

  3. 垃圾分类宣传教育——垃圾分类知识竞答活动小程序

    <生活垃圾分类管理办法>(下称<办法>)日前公布,将于2021年10月1日起施行. <办法>的出台标志着我市生活垃圾分类工作进入法治化新阶段.<办法>的 ...

  4. 2021暨南大学轩辕杯ACM程序设计新生赛题解

    title : 2021暨南大学轩辕杯ACM程序设计新生赛 date : 2021-12-12 tags : ACM,练习记录 author : Linno 题目链接:https://ac.nowco ...

  5. 退役了,总结的ACM近年区域赛的所有题型

    前面的是退役小记,后面是我个人写近2年所有区域赛场次记录的题型(请忽略我记录的感受),可以留着看下最近的场次名称和原题在哪里有 目录 退役小记(没兴趣可以不看) 这里简单记下我的acm生涯 省赛和三场 ...

  6. 云南省电子计算机高级,计算机基础知识-云南省电子信息高级技工学校.ppt

    计算机基础知识-云南省电子信息高级技工学校.ppt 第1章 信息与计算机基础知识 1.1 信息与计算机 1.2 计算机的发展与应用 1.3 计算机硬件系统 1.4 计算机软件系统 1.5 微机系统的安 ...

  7. 健康知识竞答线上活动方案——微信答题小程序实现

    为不断提高业务水平和自身综合素质,强化专业知识的学习和理解.经总部研究决定,在我司范围内开展知识竞答线上活动,期待大家充分展示奋发向上.积极参与的精神状态,不断突破自我,始终保持学习的热情.具体方案如 ...

  8. SDUTOJ 3034 炸学校(dijkstra)

    炸学校 Time Limit: 2000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 "小儿么小二郎,背着那炸弹炸学校,不怕那太阳晒,也不怕那风雨狂. ...

  9. SDUTOJ 3034 ——炸学校

    题目描述 "小儿么小二郎,背着那炸弹炸学校,不怕那太阳晒,也不怕那风雨狂."估计这首歌我们大家都耳熟能详了. 于是就有一群小学生们商量着炸学校.要把本市的小学的都给炸掉.于是他们商 ...

最新文章

  1. wget指定目录下载以及其它的使用方式
  2. Memcache存储大数据的问题(大于1m)
  3. SQL Server 中系统视图sysobjects中type字段的说明
  4. Socket 套接字
  5. 聊聊高并发下库存加减那些事儿——“异步扣减库存”
  6. 有抱负/初级开发人员的良好习惯-避免使用的习惯
  7. tcp拥塞控制_面试必备TCP(四):拥塞控制
  8. Words For Today [2011-07-31]
  9. 南京林业大学883数据结构本校资料
  10. vss服务器状态失败_VSS常犯错误(转载)
  11. hihocoder 1257 Snake Carpet
  12. python爬虫豆瓣高分电影前一百部
  13. 工作感想——离开公司
  14. 为人处世之道,与君共勉!
  15. 物联网(IoT)行业的决策管理应用
  16. 美团云深度学习平台-快速开始
  17. 企业抖音号怎么运营矩阵?运营有何技巧?
  18. 香农编码的C++实现及求平均码长和编码效率
  19. 对于同源与非同源的理解
  20. 15.1 计算几何 (用海伦公式)——【三角形的面积】

热门文章

  1. 解决山石设备无法使用最新版chromeflash功能(91版本及以上)
  2. html 中写注释吗,html 注释
  3. cmd命令行下怎么切换目录 命令行改变目录
  4. C/C++黑魔法-三字母彩蛋
  5. oppo服务器暂时不可用,oppo手机网络连接不可用是怎么回事
  6. python 完全面向对象_python之面向对象
  7. 计算机中班音乐,【精品】中班音乐教案6篇
  8. 堆栈溢出:Stack overflow (参数: 0x0000000000000001, 0x0000005410A03FF8)
  9. 基于数据结构和C语言实现公交管理系统(含文档和代码)数据结构课程设计
  10. java错误代码1061_异常求解 小白