cogs3. 服务点设置

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

问题描述
为了进一步普及九年义务教育,政府要在某乡镇建立一所希望小学,该乡镇共有n个村庄,村庄间的距离已知,请问学校建在哪个村庄最好?(好坏的标准是学生就近入学,即在来上学的学生中,以最远的学生走的路程为标准。或者说最远的学生与学校的距离尽可能的小。)
【输入格式】
输入由若干行组成,第一行有两个整数,n(1≤n≤100)、m(1≤m≤n*n);n表示村庄数,m表示村庄间道路数。第2至m+1行是每条路的信息,每行三个整数,为道路的起点、终点和两村庄间距离。(村庄从0开始编号)
【输出格式】
一个整数,学校所在村庄编号(如果两个村庄都适合建立学校,选择编号小的村庄建学校)。
【输入样例】
输入文件名:djsa.in
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
【输出样例】
输出文件名:djsa.out
4
思路:
  因为题目要求为:

        要最远的学生与学校的距离尽可能小.
  所以 若找到了使得当前枚举的最远的学生与学校距离比以前枚举的更近的话,就进行更新最远距离和学校编号

坑点:

  记得每次找最远距离的时候都要清空找到的上一个最远距离(minl)

上代码:

#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdio>
#include <cmath>
using namespace std; const int Maxint = ;
const int N = ;
int n,m,p,minl=Maxint,maxl=Maxint;
int map[N][N]; int main()
{
freopen("djsa.in","r",stdin);
freopen("djsa.out","w",stdout);
scanf("%d%d",&n,&m);
for(int i=;i<n;i++)
{
for(int j=;j<n;j++)
map[i][j]=Maxint;
map[i][i]=;
}
for(int i=,u,v,w;i<m;i++)
{
scanf("%d%d%d",&u,&v,&w);
map[u][v]=w,map[v][u]=w;
}
/*floyd*/
for(int k=;k<n;k++)
for(int i=;i<n;i++)
for(int j=;j<n;j++)
if(map[i][j]>map[i][k]+map[k][j])
map[i][j]=map[i][k]+map[k][j];
for(int i=;i<n;i++)
{
minl=;
for(int k=;k<n;k++)
minl=max(minl,map[i][k]);
if(maxl>minl)
{
maxl=minl;
p=i;
}
}
printf("%d",p);
return ;
}

cogs4. 双服务点设置

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

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

 
【输入格式】
输入由若干行组成,第一行有两个整数,n(1≤n≤50)、m(1≤m≤n∗n);n表示村庄数,m表示村庄间道路数。第2至m+1行是每条路的信息,每行三个整数,为道路的起点、终点和两村庄间距离。(村庄从0开始编号)
【输出格式】
两个整数,学校所在村庄编号(如果两个以上村庄都适合建立学校,选择编号小的两个村庄建学校,输出时按编号从小到大输出)。
【输入样例】
输入文件名:djsb.in
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
【输出样例】
输出文件名:djsb.out
0 3
思路:
  跟3差不多,稍作改进,需要加一层循环,两个点一起进行更新
  即
  若找到了使得当前枚举的最远的学生与 学校距离比以前枚举的更近的两个学校的话,就进行更新最远距离和学校编号
坑点:
  1)数据范围什么鬼???
  2)说好的n(1≤n≤50)呢!qwq人与人之间最基本的信任呢???
上代码:
#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdio>
#include <cmath>
using namespace std; const int Maxint = ;
const int N = ;
int n,m,p1,p2,minl=Maxint,maxl=Maxint;
int map[N][N]; int main()
{
freopen("djsb.in","r",stdin);
freopen("djsb.out","w",stdout);
scanf("%d%d",&n,&m);
for(int i=;i<n;i++)
{
for(int j=;j<n;j++)
map[i][j]=Maxint;
map[i][i]=;
}
for(int i=,u,v,w;i<m;i++)
{
scanf("%d%d%d",&u,&v,&w);
map[u][v]=w,map[v][u]=w;
}
/*floyd*/
for(int k=;k<n;k++)
for(int i=;i<n;i++)
for(int j=;j<n;j++)
if(map[i][j]>map[i][k]+map[k][j])
map[i][j]=map[i][k]+map[k][j];
for(int i=;i<n;i++)
{
for(int j=i+;j<n;j++)
{
minl=;
for(int k=;k<n;k++)
{
/*
if(i==k || j==k)
continue;
*/
int emmmm=min(map[i][k],map[j][k]);
minl=max(minl,emmmm);
}
if(maxl>minl)
{
maxl=minl;
p1=i,p2=j;
}
}
}
printf("%d %d",p1,p2);
return ;
}

嘻嘻,5还没写啦~

cogs服务点设置(不凶,超乖) x的更多相关文章

  1. cogs 服务点设置

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

  2. COGS 5. P服务点设置

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

  3. cogs 3. 服务点设置 dijkstra

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

  4. cogs p服务点设置

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

  5. cogs 双服务点设置

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

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

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

  7. 利用efi功能更改bios主板被隐藏的设置(如超频)

    整理自(来源): http://tieba.baidu.com/p/4934345324 ([新手教程]利用EFI启动盘修改 隐藏bios设置) http://tieba.baidu.com/p/49 ...

  8. Charles设置断点- (超详解)

    1.选择你要设置断点的接口 2.右键选择 Breakpoints 3.断点的相关配置, Proxy ——>Breakpoint Settings 5.双击刚刚已经设置的断点接口,进行设置 6. ...

  9. IDEA中设置背景图片(超详细)

    文章目录 1.效果图 2.详细设置过程 1.效果图 2.详细设置过程

随机推荐

  1. O063、NFS Volume Provider(Part II)

    参考https://www.cnblogs.com/CloudMan6/p/5693771.html   本节开始创建 NFS volume ,操作方法和 LVM volume一样,唯一的区别是在 v ...

  2. O043、计算节点宕机了怎么办

    参考https://www.cnblogs.com/CloudMan6/p/5562131.html   Rebuild 可以恢复损坏的instance .那如果是宿主机坏了怎么办呢?比如硬件故障或者 ...

  3. vue-cli实现原理

    分析:https://kuangpf.com/vue-cli-analysis/create/basic-verification.html vue-cli-service :https://blog ...

  4. js 使用sessionStorage总结与实例

    作用:它只是可以将一部分数据在当前会话中保存下来,刷新页面数据依旧存在.但当页面关闭后,sessionStorage 中的数据就会被清空 sessionStorage的方法setItem存储value ...

  5. 【Git的基本操作三】基本操作命令

    基本操作 (1) 状态查看操作 git status 作用:查看工作区.暂存区状态 (2) 添加操作 git add [filename] 作用:将工作区文件的 添加/修改,添加到暂存区 (3) 提交 ...

  6. vue项目 时间戳转 格式

    项目用了 element UI的日期插件,修改时 时间回显不了,打印出来是换行了,因此要转换 changeTime(value){ let date = new Date(value); let y ...

  7. KTV歌曲播放原理

    歌曲播放原理 一开始要有一个Song类,在类外面定义枚举,在里面放四种状态, 为:已播放,未播放,重唱,切歌 在类里把歌曲名称和路径封装成字段 起初每首歌的状态默认为未播放 通过MadeSongPla ...

  8. Python 之 random模块

    Python中的random模块用于生成随机数.1.random.random()  #用于生成一个0到1的随机浮点数:0<= n < 1.0>>> random.ran ...

  9. kbmMW 5.09测试报告(1)-Scheduler

    这个版本除了增加新的SmartBinding功能,同时提供了大量的功能更新以及bug修正.其中,SmartBinding的介绍,xalion已经第一时间写了初识kbmmw 中的smartbind功能, ...

  10. php底层的运行机制和原理

    php设计的理念及特点 PHP 被设计为一种适用于web开发的动态脚本语言,同时具有解释型和弱类型,底层完全由C语言实现. 解释型即程序边运行边解释,一行一行运行. 弱类型即变量类型一开始并不是确定的 ...