5. P服务点设置

http://www.cogs.pro/cogs/problem/problem.php?pid=5

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

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

 
【输入格式】
输入由若干行组成,第一行有3个整数,n(1≤n≤100)、m(1≤m≤n2),p;n表示村庄数,m表示村庄间道路数。第2至m+1行是每条路的信息,每行三个整数,为道路的起点、终点和两村庄间距离。(村庄从0开始编号)
【输出格式】
P个整数,学校所在村庄编号(如果P个以上村庄都适合建立学校,选择编号小的P个村庄建学校,输出时按编号从小到大输出)。
【输入样例】
输入文件名:djsc.in
6 8 2
0 2 10
0 4 30
0 5 100
1 2 5
2 3 50
3 5 10
4 3 20
4 5 60
【输出样例】
输出文件名:djsc.out
0 3
floyd + 递归枚举每个学校的位置
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int n,m,p,ans=0x7fffffff;
int f[][];
int b[],c[];
void dfs(int sum,int now)
{
if(sum==p+)
{
int maxn=;
for(int i=;i<n;i++)
{
int minn=0x7fffffff;
for(int j=;j<=p;j++)
minn=min(minn,f[i][b[j]]);
maxn=max(maxn,minn);
}
if(maxn<ans)
{
ans=maxn;
memset(c,,sizeof(c));
for(int i=;i<n;i++) c[i]=b[i];
}
return;
}
for(int i=now+;i<n;i++)
{
b[sum]=i;
dfs(sum+,i);
}
}
int main()
{
freopen("djsc.in","r",stdin);
freopen("djsc.out","w",stdout);
scanf("%d%d%d",&n,&m,&p);
for(int i=;i<n;i++)
for(int j=;j<n;j++)
f[i][j]=1e9/;
int u,v,w;
for(int i=;i<=m;i++)
{
scanf("%d%d%d",&u,&v,&w);
f[u][v]=f[v][u]=w;
}
for(int i=;i<n;i++) f[i][i]=;
for(int i=;i<n;i++)
for(int j=;j<=n;j++)
for(int k=;k<n;k++)
f[j][k]=min(f[j][k],f[j][i]+f[i][k]);
dfs(,-);
for(int i=;i<=p;i++) printf("%d ",c[i]);
}

COGS 5. P服务点设置的更多相关文章

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

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

  2. cogs p服务点设置

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

  3. cogs 双服务点设置

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

  4. cogs 服务点设置

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

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

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

  6. cogs 3. 服务点设置 dijkstra

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

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

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

  8. COGS——T 1175. [顾研NOIP] 旅游电车

    http://www.cogs.pro/cogs/problem/problem.php?pid=1175 ★★☆   输入文件:buss.in   输出文件:buss.out   简单对比时间限制: ...

  9. COGS——T 7. 通信线路

    http://www.cogs.pro/cogs/problem/problem.php?pid=7 ★★   输入文件:mcst.in   输出文件:mcst.out   简单对比时间限制:1.5 ...

随机推荐

  1. 【CS231N】3、Softmax分类器

    wiki百科:softmax函数的本质就是将一个K维的任意实数向量压缩(映射)成另一个K维的实数向量,其中向量中的每个元素取值都介于(0,1)之间. 一.疑问 二.知识点 1. softmax函数公式 ...

  2. JAVA 构造函数 静态变量

    class HelloA { public HelloA() { System.out.println("HelloA"); } { System.out.println(&quo ...

  3. redis简介及增删改查

    redis 是一个文档(nosql)数据库,工作与内存,主要用做高速缓存 缓存经常会查到的数据 存入的值默认是字符串 使用步骤: 1 从redis.io下载 2 点击redis-server.exe启 ...

  4. Linux内核0.11 setup文件说明

    一.总体功能介绍 这是关于Linux-kernel-0.11中boot文件夹下setup.s源文件的实现功能的总结说明. setup.s是一个操作系统加载程序,它的主要功能是利用BIOS中断读取机器系 ...

  5. VBA笔记(一)——基础配置

    开启VBA编程环境——VBE 方法一:按<Alt+F11>组合建 方法二:查看代码 宏设置 当然启用宏的设置方式不同,宏的启动方式也不一样. 首先打开“office 按钮”,选择“exce ...

  6. ie6 ie7 userdata 本地存储 引发的惨案.

    我使用 documentElement 作为userdata 作为本地存储的载体. document.documentElement.addBehavior("#default#userda ...

  7. jQuery文件上传插件uploadify

    官方网站:http://www.uploadify.com/ 参考博客:jQuery Uploadify在ASP.NET MVC3中的使用 参考博客:使用uploadify上传图片时返回“Cannot ...

  8. There is no getter for property named 'notice' in 'class com.game.domain.Notices'

    在插入数据时报错:There is no getter for property named 'notice' in 'class com.game.domain.Notices' 四月 11, 20 ...

  9. BZOJ5308 ZJOI2018胖

    贝尔福特曼(?)的方式相当于每次将所有与源点直接相连的点的影响区域向两边各扩展一格.显然每个点在过程中最多更新其他点一次且这些点构成一段连续区间.这个东西二分st表查一下就可以了.注意某一轮中两点都更 ...

  10. access数据库表导入到oracle

    1.本机安装access数据库 25M左右2.创建ODBC数据源,要选择oracle C:\Windows\SysWOW64\odbcad32.exe 3.打开要导入的 .mdb文件 右键表--> ...