【问题描述】  在马其顿王国的ohide湖里举行了一场潜水比赛.其中一个项目是从高山上跳下水,再潜水到达终点.这是一个团体项目,一支队伍由n个人组成.在潜水时必须使用氧气瓶,但是每支队伍只有一个氧气瓶.最多两个人同时使用一个氧气瓶,但此时两人必须同步游泳,因此到达终点的时间等于较慢的一个单独游到终点所需要的时间.好在大家都很友好,因此任何两个人都愿意一起游泳.安排一种潜水策略,使得最后一名选手尽早到达终点。【输入格式】  第1行:一个整数n,表示队伍的人数。以下n行,每行一个整数,表示第i个人游到终点的时间Ti。【输出格式】  队伍最早到达终点的时间。【样例输入1】3134【样例输入2】6125689 【样例输出1】8【样例输出2】27
【数据范围】  n<=1000, 0<Ti<=100000很清楚地是:
如果只有1人,则ans=a[1];
如果只有2人,则ans=max(a[1],a[2]);
如果只有3人,则ans=a[1]+a[2]+a[3];
不难想到有两种方法
1.用速度最快的人来回一个一个地运人
2.用最快的两个人来回运完最慢的两个(1、2过河;1返回;最慢两个过河;2返回;1、2过河)
先按速度排序,每次从第三、四个人开始运,用两种方法中时间短的一种加到ans中(注意中途需要加上一个已过河的a[1]或a[2]返回用的时间,因为下一次需要他们在起点)。直到只有4个人或3个人,此时就很好计算了。
#include<cstdio>
#include<algorithm>
#define maxn 1005
using namespace std;
int n,ans=0,a[maxn];;int read()
{int x=0,ok=0;char ch;ch=getchar();while((ch<'0'||ch>'9')&&ch!='-') ch=getchar();while((ch>='0'&&ch<='9')||ch=='-'){if(ch=='-') ok=1;else x=x*10+ch-'0';ch=getchar();}    return ok==1?-x:x;
}void in()
{n=read();for(int i=1;i<=n;i++)a[i]=read();sort(a+1,a+n+1);}void task()
{int t=n-1;while(1){if(n==1){ans+=a[1];break;}if(n==2){ans+=a[1]+a[2];break;}if(n==3){ans+=a[1]+a[2]+a[3];break;}if(n==4){ans+=min(a[t]+a[1]+a[t+1]+a[2]+a[1],a[2]+a[1]+a[t+1]+a[2]+a[2]);break;}ans+=min(a[t]+a[1]+a[t+1]+a[1],a[2]+a[1]+a[t+1]+a[2]);t-=2;n-=2;}printf("%d",ans);
}int main()
{freopen("in.txt","r",stdin);in();task();return 0;
}

uva10073 潜水比赛相关推荐

  1. 《算法艺术与信息学竞赛》题目-提交方式对照表 [转]

    id   title how2submit source page 1   盒子里的气球     8 2   图书馆 ural1188   9 3   钓鱼 uva757 pas 13 4   照亮的 ...

  2. VoxEdit 创作比赛获奖者 NFT 集合上线市场平台

    VoxEdit 创作比赛中的最佳资产! VoxEdit 创作比赛是向世界展示你的设计技能的最佳机会!The Sandbox 团队从以下主题大赛中挑选了几十个优质作品,一起来看看吧: Voxelize ...

  3. 潜水党回馈牛友,算法工程师2017年学习,实习,秋招总结

    写在前面: 本人万年潜水党.在牛客网暗中观察了很长时间,也得到了很多有用的信息和帮助.一直计划最后写一篇文章回馈牛客.最近一段时间就是忙完了秋招忙论文.然后就是忙着玩.拖到现在终于赶在2018年到来之 ...

  4. LeetCode简单题之棒球比赛

    题目 你现在是一场采用特殊赛制棒球比赛的记录员.这场比赛由若干回合组成,过去几回合的得分可能会影响以后几回合的得分. 比赛开始时,记录是空白的.你会得到一个记录操作的字符串列表 ops,其中 ops[ ...

  5. LeetCode简单题之比赛中的配对次数

    题目 给你一个整数 n ,表示比赛中的队伍数.比赛遵循一种独特的赛制: 如果当前队伍数是 偶数 ,那么每支队伍都会与另一支队伍配对.总共进行 n / 2 场比赛,且产生 n / 2 支队伍进入下一轮. ...

  6. 计算机图画大赛作品六年级,小学学生电脑绘画比赛活动方案

    <小学学生电脑绘画比赛活动方案>由会员分享,可在线阅读,更多相关<小学学生电脑绘画比赛活动方案(7页珍藏版)>请在人人文库网上搜索. 1.坊庄小学学生电脑绘画比赛活动方案为切实 ...

  7. 【AHOI 2016初中组】 自行车比赛 - 贪心

    题目描述 小雪非常关注自行车比赛,尤其是环滨湖自行车赛.一年一度的环滨湖自行车赛,需要选手们连续比赛数日,最终按照累计得分决出冠军.今年一共有 N 位参赛选手.每一天的比赛总会决出当日的排名,第一名的 ...

  8. BestCoder Round #92 比赛记录

    上午考完试后看到了晚上的BestCoder比赛,全机房都来参加 感觉压力好大啊QAQ,要被虐了. 7:00 比赛开始了,迅速点进了T1 大呼这好水啊!告诉了同桌怎么看中文题面 然后就开始码码码,4分1 ...

  9. 南大电子机器人入驻云南_云南大学外语协会 英文歌曲演唱比赛

    云南大学外语协会  英文歌曲演唱比赛顺利落幕 2020年11月8日14:30,云南大学外语协会英文歌曲演唱比赛在文汇楼2116顺利开展.比赛流程简洁明了:参赛同学完成抽签之后,在主持人的引导下,按照流 ...

最新文章

  1. iOS传感器:实现一个随屏幕旋转的图片
  2. Cookie安全漫谈
  3. HTML中label的两种使用方法
  4. hdu 5639(区间dp)
  5. delve 调试带参数_带你学够浪:Go语言基础系列-环境配置和 Hello world
  6. 已收藏!民生银行2021春招笔试后多久面试
  7. Sublime 格式化 JSON
  8. apereo cas mysql_史上最详细的 Apereo CAS 5.3开发教程:二、Apereo CAS 5.3 Server环境搭建,登录名,密码从数据库中获取...
  9. 基于Ansible和CodeDeploy的DevOps解决方案
  10. VS Code 代码格式化
  11. 【爬虫】使用八爪鱼爬行百度地图美食店数据
  12. 力扣438题找到字符串中所有字母异位词
  13. html网页制作提交注册信息,利用HTML表单标签编写一个注册页面
  14. Java300集零基础自学
  15. Wps日期时间格式转文本、科学计数法转数字
  16. [ Linux ] 零散文件系统安装各种命令和软件的方法
  17. Page Size 【转】
  18. HTML标签 链接 CSS样式
  19. 计算机新时代作文,网络新时代作文范文
  20. Python等级考试一道关于血压的综合题解析

热门文章

  1. Lillian Shao用十年经验解读中国“公有云”落地为什么这么难?
  2. 对我影响最大的4句名言
  3. 大学时光仅四年,疫情反反复复占几年
  4. 华大HC32L130/HC32L136驱动RTC时钟芯片BL5372
  5. oracle+重启+监听,重启oracle数据库监听
  6. 人工智能:智能语音技术应用场景介绍
  7. TFT-LCD显示直线、矩形、圆形
  8. 150. 逆波兰表达式求值。
  9. FPGA学习——VGA显示
  10. seaborn从入门到精通02-绘图功能概述