3. 服务点设置

★   输入文件:djsa.in   输出文件:djsa.out   简单对比
时间限制:1 s   内存限制:128 MB

【问题描述】

为了进一步普及九年义务教育,政府要在某乡镇建立一所希望小学,该乡镇共有n个村庄,村庄间的距离已知,请问学校建在哪个村庄最好?(好坏的标准是学生就近入学,即在来上学的学生中,以最远的学生走的路程为标准。或者说最远的学生与学校的距离尽可能的小。)

【输入格式】

输入由若干行组成,第一行有两个整数,n(1≤n≤100)、m(1≤m≤n*n);n表示村庄数,m表示村庄间道路数。第2至m+1行是每条路的信息,每行三个整数,为道路的起点、终点和两村庄间距离。(村庄从0开始编号)

【输出格式】

一个整数,学校所在村庄编号(如果两个村庄都适合建立学校,选择编号小的村庄建学校)。

【样例输入】

6 8
0 2 10
0 4 30
0 5 100
1 2 5
2 3 50
3 5 10
4 3 20
4 5 60

【样例输出】

4

QAQ太蒟了   我又来水题了 
这一道题看起来非常简单的样子 100个点 10000条边 。。。。。
以每一个点为起点跑一遍dijkstra
再On地在dis数组中取一下最大值(这是+的,可忽略不计) 时间复杂度?声明:本人这是无脑暴力QAQ n*(n+m*logm +n)
100*(100+10000*14+100) 如果有不对的地方敬请指正(平常也不大算)
1400 0000 ?应该能跑过(况且数据不会那么极限嘛QAQ) 那我们就来暴力一遍吧(自认为是暴力的做法 但也想不出更好的做法 啊)
天呐我也是绝望了 第七个点究竟是怎么WA的 QAQ 数据毒瘤  
//WA一个点的超弱代码
#include<bits/stdc++.h>
#define pa pair<int,int>
#define maxn 105
#define INF 0x3f3f3f3f
using namespace std;
int n,m;
vector<int> v[maxn],w[maxn];
int dis[maxn],vis[maxn];
priority_queue<pa,vector<pa>,greater<pa> > q;
void Dijkstra(int S)//模板一顿猛敲
{
memset(dis,0x3f,sizeof(dis));
memset(vis,,sizeof(vis));
dis[S]=;
//那个队列不用单独再从头到尾清空 因为每跑完一遍Dijkstra 队列就弹空了
q.push(make_pair(,S));
while(!q.empty())
{
int x=q.top().second;
q.pop();
if(vis[x]) continue;
vis[x]=;
for(int i=;i<v[x].size();i++)
{
int y=v[x][i];
int val=w[x][i];
if(dis[y]>dis[x]+w[x][i])
{
dis[y]=dis[x]+w[x][i];
q.push(make_pair(dis[y],y));
}
}
}
}
bool BianBuild[maxn][maxn];
int main()
{
freopen("djsa.in","r",stdin);
freopen("djsa.out","w",stdout);
scanf("%d%d",&n,&m);
for(int i=;i<=m;i++)
{
int x,y,z;scanf("%d%d%d",&x,&y,&z);
if(BianBuild[x][y])//天呐 这一道题的数据居然有重边!QAQ 边权要取一个较大的
{
int Index_inx,Index_iny;
for(int j=;j<v[x].size();j++)
if(v[x][j]==y)
{
Index_inx=j;
break;
}
for(int j=;j<v[y].size();j++)
if(v[y][j]==x)
{
Index_iny=j;
break;
}
w[x][Index_inx]=max(w[x][Index_inx],z);
w[y][Index_iny]=max(w[y][Index_iny],z);
continue;
}
BianBuild[x][y]=BianBuild[y][x]=true;
v[x].push_back(y);v[y].push_back(x);
w[x].push_back(z);w[y].push_back(z);//QAQ这好像是双向边诶 天呐
}
int mi=INF,miIndex=;
for(int i=;i<n;i++)//标号从0开始
{
Dijkstra(i);
int mx=-INF;
for(int j=;j<n;j++)
mx=max(mx,dis[j]);
if(mx<mi)
{
mi=mx;
miIndex=i;
}
}
printf("%d",miIndex);
return ;
}

cogs 3. 服务点设置 dijkstra的更多相关文章

  1. cogs p服务点设置

    5. P服务点设置 ★★   输入文件:djsc.in   输出文件:djsc.out   简单对比时间限制:2 s   内存限制:128 MB 问题描述为了进一步普及九年义务教育,政府要在某乡镇建立 ...

  2. cogs 双服务点设置

    4. 双服务点设置 ☆   输入文件:djsb.in   输出文件:djsb.out   简单对比时间限制:1 s   内存限制:128 MB 问题描述为了进一步普及九年义务教育,政府要在某乡镇建立两 ...

  3. COGS 5. P服务点设置

    5. P服务点设置 http://www.cogs.pro/cogs/problem/problem.php?pid=5 ★★   输入文件:djsc.in   输出文件:djsc.out   简单对 ...

  4. cogs 服务点设置

    3. 服务点设置 ☆   输入文件:djsa.in   输出文件:djsa.out   简单对比时间限制:1 s   内存限制:128 MB 问题描述为了进一步普及九年义务教育,政府要在某乡镇建立一所 ...

  5. cogs服务点设置(不凶,超乖) x

    cogs3. 服务点设置 ★   输入文件:djsa.in   输出文件:djsa.out   简单对比时间限制:1 s   内存限制:128 MB 问题描述为了进一步普及九年义务教育,政府要在某乡镇 ...

  6. dfs -cogs 5 P服务点设置

    题目链接:http://cogs.pro:8081/cogs/problem/problem.php?pid=FSXJmiJSg   问题描述为了进一步普及九年义务教育,政府要在某乡镇建立P所希望小学 ...

  7. cogs 2. 旅行计划 dijkstra+打印路径小技巧

    2. 旅行计划 ★★   输入文件:djs.in   输出文件:djs.out   简单对比时间限制:3 s   内存限制:128 MB [题目描述] 过暑假了,阿杜准备出行旅游,他已经查到了某些城市 ...

  8. Linux命令总结大全,包含所有linux命令

    使用说明:此文档包含所有的Linux命令,只有你想不到的没有你看不到的,此文档共计10万余字,有8400多行,预计阅读时间差不多需要3个小时左右,所以要给大家说一说如何阅读此文档 为了方便大家阅读,我 ...

  9. Cogs 309. [USACO 3.2] 香甜的黄油 dijkstra,堆,最短路,floyd

    题目:http://cojs.tk/cogs/problem/problem.php?pid=309 309. [USACO 3.2] 香甜的黄油 ★★   输入文件:butter.in   输出文件 ...

随机推荐

  1. 再一次利用with as 优化SQL

    上海的一个哥们问我有个SQL跑了4个小时都没跑完,实在受不了了,找我优化一下.我确实挺佩服他的,要是我遇到跑了几分钟的,就受不了了. SQL语句和执行计划如下: --sql id:1qbbw3th4x ...

  2. Spring Data JPA坑点记录

    本篇进行Spring-data-jpa的介绍,几乎涵盖该框架的所有方面,在日常的开发当中,基本上能满足所有需求.这里不讲解JPA和Spring-data-jpa单独使用,所有的内容都是在和Spring ...

  3. H3C 三种生成树协议特性的比较

  4. Struts 2三种方式实现Ajax

    Ajax本质上和普通的HTTP请求是一样的,只不过普通的HTTP请求是给人看的,而Ajax请求是给JS代码去用的. 所以Ajax请求的页面一般比普通的HTTP请求的响应内容还要简单,可能是一个页面的一 ...

  5. MFC_对话框_访问控件_7种方法_A

    访问对话框控件的七种方法 方法一. GetDlgItem()->GetWindowText(); GetDlgItem()->SetWindowText(); 方法二. GetDlgIte ...

  6. 小白学 Python 爬虫(30):代理基础

    人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...

  7. 序列化表单数据$("form").serializeArray()

    在做一个后台管理系统类似的项目中发现不能直接取得表单中的数值,于是想到先将表单数据转化为json,然后再用js从json中获取数据,那不就简单了吗? 于是我用了jquery的serializeArra ...

  8. lombok优缺点

    优点: 能通过注解的形式自动生成构造器.getter/setter.equals.hashcode.toString等方法,提高了一定的开发效率 让代码变得简洁,不用过多的去关注相应的方法 属性做修改 ...

  9. Ceph 之RGW Pub-Sub Module

    Overview Pub-Sub module 顾名思义是一个发布订阅相关的模块.Pub-Sub module 为对象存储的变更事件提供一种发布-订阅机制.而发布-订阅架构本身应用非常广泛,如公有云G ...

  10. Java 从入门到进阶之路(二十)

    在之前的文章我们介绍了一下 Java 中的包装类,本章我们来看一下 Java 中的日期操作. 在我们日常编程中,日期使我们非常常用的一个操作,比如读写日期,输出日志等,那接下来我们就看一下 Java ...