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. 第三次作业---excel导入数据库及显示(2)

    发现第一次做的功能有点复杂,不能理解.而且第一次的想法是在页面上上传文件,连接并导入到数据库,并在页面上显示.后来才看到要求是直接在本地将数据导入数据库就行了,然后显示.所以才出现了一堆看不懂也解决不 ...

  2. week_2 四则运算

    coding地址: https://git.coding.net/lvgx/week_2.git 一. 需求分析 1.接收一个输入参数n,然后随机产生n道加减乘除(分别使用符号+-*÷来表示)练习题 ...

  3. quartusII13.0使用教程

    1.新建工程项目,填写项目存储路径和工程名,不要出现中文路径 2.添加已存在文件(可选),在[File name]下选择已经存在的工程项目,利用[Add]或[Add all]命令添加文件到新工程,点击 ...

  4. c3p0连接池基本配置mysql和oracle

    c3p0-config.xml <?xml version="1.0" encoding="UTF-8"?> <c3p0-config> ...

  5. Ubuntu下面 PHPSTORM2017.2破解方法

    Ubuntu下面 PHPSTORM2017.2破解方法 下载破解文件 在 http://idea.lanyus.com/上面新下载一个破解文件. 破解步骤 将JetbrainsCrack-2.6.3_ ...

  6. Java 流程控制

                                   Java    流程控制 Java 分支结构 - if...else/switch 顺序结构只能顺序执行,不能进行判断和选择,因此需要分支 ...

  7. JVM中各种变量保存位置

    Java中变量分为静态变量,实例变量,临时变量.那么各种变量具体保存在JVM中的何处呢? 1 静态变量:位于方法区. 2 实例变量:作为对象的一部分,保存在堆中. 3 临时变量:保存于栈中,栈随线程的 ...

  8. kafka-connect-hive sink实现要点小结

    kafka-connect-hive sink插件实现了以ORC和Parquet两种方式向Hive表中写入数据.Connector定期从Kafka轮询数据并将其写入HDFS,来自每个Kafka主题的数 ...

  9. Rotting Oranges - LeetCode

    目录 题目链接 注意点 解法 小结 题目链接 Rotting Oranges - LeetCode 注意点 解法 解法一:bfs.首先先统计所有新鲜的橘子数目fresh,如果fresh大于0则一直执行 ...

  10. 850. 矩形面积 II

    我们给出了一个(轴对齐的)矩形列表 rectangles . 对于 rectangle[i] = [x1, y1, x2, y2],其中(x1,y1)是矩形 i 左下角的坐标,(x2,y2)是该矩形右 ...