COGS——T 21. [HAOI2005] 希望小学
http://www.cogs.pro/cogs/problem/problem.php?pid=21
★★ 输入文件:hopeschool.in 输出文件:hopeschool.out 简单对比
时间限制:1 s 内存限制:128 MB
【问题描述】
地处偏僻山区的X乡有N个自然村,目前还没有一所小学,孩子们要么不上学,要么需要翻过一座大山到别处上学。如今好啦,有一位热心人士准备捐款在某个自然村建立一所希望小学。
通过调查发现,X乡各个村庄之间的道路较为复杂,有平路、上坡和下坡。考虑到每个村孩子们的人数不同,走上坡、下坡和平路的速度也不同,?男孩和女孩走路速度也不同,请你为X乡选择一个最合适建立希望小学的村庄,使得所有的孩子花在路上的总时间最少。
【输入文件】
hopeschool.in
第1行: N B1 B2 B3 G1 G2 G3 (村庄数、男孩分别走平路、上坡、下坡每千米花费的时间以及女孩分别走平路、上坡、下坡每千米花费的时间)
第2行: Xl X2……Xn (Xi表示第i个村要上学的男孩人数)
第3行: Y1 Y2……Yn (Yi表示第i个村要上学的女孩人数)
第4行: K (道路数)
第5—K+4行: Ai Bi Si1 Si2 Si3 (村庄Ai到村庄Bi,平路Sil千米,上坡Si2千米,下坡Si3千米,i=1,2,…,K)
【输出文件】
hopeschool.out
T(将要建立希望小学村庄的编号)
【约束条件】
(1) N<=30, Xi<=20, Yi<=20
(2) K<=100, 每条路的长度<=30千米
(3) B1,B2,B3,G1,G2,G3为整数,都小于10个单位时间/每千米
(4) 每条道路只给出一组数据。例如:5 8 7 10 3表示从村庄5往村庄8走,平路
有7千米,上坡10千米。 下坡3千米;当然也表示从村庄8往村庄5走,平路有7千米,
上坡3千米。下坡10千米。
【输入输出样例】

hopeschool.in
2 2 2 1 2 3 2
10 12
5 4
1
1 2 10 2 1
hopeschool.out
2
注意约束条件(3),数据范围这么、、Floyed可以了
#include <algorithm>
#include <cstdio> using namespace std; const int INF(0x3f3f3f3f);
const int N(); inline void read(int &x)
{
x=; register char ch=getchar();
for(;ch>''||ch<'';) ch=getchar();
for(;ch>=''&&ch<='';ch=getchar()) x=x*+ch-'';
} int AC()
{
freopen("hopeschool.in","r",stdin);
freopen("hopeschool.out","w",stdout);
int n,k,b1,b2,b3,g1,g2,g3,dis[N][N],x[N],y[N];
read(n),read(b1),read(b2),read(b3),read(g1),read(g2),read(g3);
for(register int i=;i<=n;++i)
for(register int j=;j<=n;++j)
dis[i][j]=INF*(i!=j);
for(register int i=;i<=n;++i) read(x[i]);
for(register int i=;i<=n;++i) read(y[i]);
read(k);
for(register int s1,s2,s3,a,b;k--;)
{
read(a),read(b),read(s1),read(s2),read(s3);
dis[a][b]=x[a]*(s1*b1+s2*b2+s3*b3)+y[a]*(s1*g1+s2*g2+s3*g3);
dis[b][a]=x[b]*(s1*b1+s2*b3+s3*b2)+y[b]*(s1*g1+s2*g3+s3*g2);
}
for(register int k=;k<=n;++k)
for(register int i=;i<=n;++i)
for(register int j=;j<=n;++j)
if(dis[i][j]>dis[i][k]+dis[k][j])
dis[i][j]=dis[i][k]+dis[k][j];
int ans,sum,maxx=INF;
for(register int i=;i<=n;++i)
{
sum=;
for(register int j=;j<=n;++j)
sum+=dis[j][i];
if(sum<maxx) maxx=sum,ans=i;
}
printf("%d\n",ans);
return ;
} int I_want_AC=AC();
int main() {;}
COGS——T 21. [HAOI2005] 希望小学的更多相关文章
- cogs——21. [HAOI2005] 希望小学
21. [HAOI2005] 希望小学 ★★ 输入文件:hopeschool.in 输出文件:hopeschool.out 简单对比时间限制:1 s 内存限制:128 MB [问题描述 ...
- Hdoj 2190.悼念512汶川大地震遇难同胞——重建希望小学 题解
Problem Description 下面是512汶川大地震部分受灾学校伤亡情况(惨痛!!) 1. 四川省都江堰市 聚源中学 伤亡情况:遇难学生人数(含失踪)320 详细说明: 一栋教学楼被震垮,该 ...
- hdu 2190 悼念512汶川大地震遇难同胞——重建希望小学
题目 这道题拿到的时候拼凑了一会,感觉挺难的,然后博客说是:递推,我觉得递推其实就是找规律. 这是别人的思路:对于n米的长度,可以是由n-1长度加1而来,对于增加的1,只有三块1*1的砖一种铺法: 还 ...
- hdu 2190 重建希望小学(数学,递推)
题意: N*3的教室,有2种砖,2*2.1*1. 问铺设教室的方案有多少种.(要铺满) 思路: 画一下图可以很快发现递推公式 代码: int main(){ int a[35]; mem(a,0); ...
- COGS 5. P服务点设置
5. P服务点设置 http://www.cogs.pro/cogs/problem/problem.php?pid=5 ★★ 输入文件:djsc.in 输出文件:djsc.out 简单对 ...
- dfs -cogs 5 P服务点设置
题目链接:http://cogs.pro:8081/cogs/problem/problem.php?pid=FSXJmiJSg 问题描述为了进一步普及九年义务教育,政府要在某乡镇建立P所希望小学 ...
- 欢迎大家使用Druid,常见问题在这里解答,希望对大家有所帮助
https://github.com/alibaba/druid/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98 欢迎大家使用Druid,常见问题在这里解答,希望对 ...
- cogs p服务点设置
5. P服务点设置 ★★ 输入文件:djsc.in 输出文件:djsc.out 简单对比时间限制:2 s 内存限制:128 MB 问题描述为了进一步普及九年义务教育,政府要在某乡镇建立 ...
- cogs 双服务点设置
4. 双服务点设置 ☆ 输入文件:djsb.in 输出文件:djsb.out 简单对比时间限制:1 s 内存限制:128 MB 问题描述为了进一步普及九年义务教育,政府要在某乡镇建立两 ...
随机推荐
- jQuery学习(二)——使用JQ完成页面定时弹出广告
1.JQuery效果 2.步骤分析: 第一步:引入jQuery相关的文件 第二步:书写页面加载函数 第三步:在页面加载函数中,获取显示广告图片的元素. 第四步:设置定时操作(显示广告图片的函数) 第五 ...
- Synchronization (computer science)
过程同步.数据同步. In computer science, synchronization refers to one of two distinct but related concepts: ...
- 《Unix环境高级编程》读书笔记 第13章-守护进程
1. 引言 守护进程是生存期长的一种进程.它们常常在系统引导装入时启动,仅在系统关闭时才终止.它们没有控制终端,在后台运行. 本章说明守护进程结构.如何编写守护进程程序.守护进程如何报告出错情况. 2 ...
- 如何取未知Json字符串 某个主键取对应的Value
需添加引用using Newtonsoft.Json; string strJon "Json 字符串"; JObject obj = JObject.Parse(strJon ...
- IPv6理论知识详解
1. IPv6地址表示 IPv6地址可以表示为128位由0.1组成的字符串,为了便于计算机理解,将128位的二进制字符串表示为32位的十六进制字符串,为了便于理解,人们将其划分为8组,组与组之间用 : ...
- document.body
比如document.body,最好是写成document.getElementsByTagName("body")[0];
- CF1015F Bracket Substring (KMP+DP)
题目大意:给你一个长度为$n$的括号序列$T$,要求你构造一个长度为$2n$的括号序列$S$,保证这个括号序列在插入数字后一定是正确的,并且$T$是$S$的一个子串 还以为是什么纯粹的数学构造题,一通 ...
- session 超时跳转登陆页面
/** * session超时跳转登陆页面 * @author zhangdong * 2017年10月24日 */ @Aspect @Component public class SessionTi ...
- Oralce中的package和package body
1.Oracle Package的作用: 可以简化应用设计.提高应用性能.实现信息隐藏.子程序重载 2.ORACLE中的function .package.package bodies.pro ...
- Maven copy方式列举
maven copy有很多种方法: 1.maven-antrun-plugin (使用ant复制) <build> <finalName>flex</finalName& ...