Old Captain Jack Sparrow’s friend Tia Dalma, the fortuneteller and prophetess, often makes potions. She has an outstanding collection of the rarest ingredients such as rat tails, fingers of drowned,
tears of virgins and so on. And all these ingredients require special care.
Recently Tia Dalma received some good skins of bats as a payment, and now she wants to dry them. To dry ingredients fortuneteller usually uses specially prepared books as the magical properties of the
skins could be lost during prolonged contact with other objects. Tia Dalma knows how many sheets should be on both sides of the skin to save it unspoiled. For a i-th skin that number is ai,
that is, the distance from it to the neighboring skins and the book cover can’t be less than ai sheets. Help a fortuneteller determine the minimum number of sheets
that should be in the book to save rare ingredients from damage.

Input

The first line contains integer n  that is the number of skins (1 ≤ n ≤ 100). The second line contains n integers ai (1
≤ ai ≤ 100).

Output

Output the minimal required number of sheets in the book.

Sample

input output
3
5 10 3
28

这是个十分难理解的题目,一难:难理解题意; 二难:难理解算法

题意简略为:

把一些奇怪的湿蝙蝠皮夹在书中,每张蝙蝠皮都带一个值,每张蝙蝠皮的两边的书的页数不能少于这个值,求最小须要使用多少页书的书本?

非常奇怪吧,只是她是说个魔法故事的。多奇怪都不奇怪,O(∩_∩)O~

本题算法:

样例中为什么是28呢?

误解:5页+max(5,10) + max(10, 3) + 3 = 28

正解:3页+max(3, 5)+max(5, 10)+10 = 28

再看一个样例:

6

1 3 2 5 4 6

误解:1页+max(1, 3) + max(3, 2)+max(2,5)+max(5,4)+max(4,6) + 6 = 29

正解:1页+max(1, 2) +max(2, 3) + max(3, 4)+max(4,5)+max(5,6)+6 = 27

这就能够看出规律来了:

先排序然后求解。

只是这个尽管是正确解,可是最佳是:sum+max(array)

为什么要这样呢?

看清楚题意,题目没有规定要使用上面顺序来放这些蝙蝠皮,所以我们能够随便安排这些蝙蝠皮的位置--要读题读出这个意思不easy啊。

那么为什么要由小到大安排呢?

由于我们必需要保证小的数值的蝙蝠皮必需要使用到,不能保证使用两次。那就保证使用一次 -- 那么就仅仅能是由小到大安排了。

理解了意思之后,程序却是十分简单的:

#include <algorithm>
#include <iostream>
using namespace std; void TearsofDrowned1935()
{
int n = 0, a = 0, ans = 0, maxNum = 0;
cin>>n;
for (int i = 0; i < n; i++)
{
cin>>a;
ans += a;
maxNum = max(maxNum, a);
}
ans += maxNum;
cout<<ans;
}

Timus 1935. Tears of Drowned 具体解释的更多相关文章

  1. E - Tears of Drowned

    Description Tia Dalma: Come. What service may I do you? You know I demand payment. Jack: I brought p ...

  2. drupal 7 模块开发,hook_form

    因为不是系统学习,只能把每天自己学习到的东西零碎的记录下来. 一来方便自己记忆,二来可供大家查阅. 后续有精力再去做进一步的整理. 1 开发一个模块分为有下面几个文件 hook.admin.inc h ...

  3. ZIP压缩算法详细分析及解压实例解释

    最近自己实现了一个ZIP压缩数据的解压程序,觉得有必要把ZIP压缩格式进行一下详细总结,数据压缩是一门通信原理和计算机科学都会涉及到的学科,在通信原理中,一般称为信源编码,在计算机科学里,一般称为数据 ...

  4. 说说BPM数据表和日志表中几个状态字段的详细解释

    有个客户说需要根据这些字段的值作为判断条件做一些定制化需求,所以需要知道这些字段的名词解释,以及里面存储的值具体代表什么意思 我只好为你们整理奉上这些了! Open Work Sheet  0 Sav ...

  5. 【完全开源】知乎日报UWP版:项目结构说明、关键源代码解释

    目录 说明 项目结构 关键代码 演示视频 说明 上一篇博客将源码放出来了,但是并没有做过多的介绍,所以如果自己硬看可能需要花费很长的时间,尤其这些代码并不是自己写的.项目不算复杂但是也不算简单,这篇文 ...

  6. nodejs、npm、grunt——名词解释

    最近着手开发一个新项目,打算从工程化的角度整理一套自己的前端开发.发布体系. grunt这些工具,之前别人用我也用,并没有认真想过它们的前世今生,正好趁着这个机会,我来理一理目前业界比较流行这些工具的 ...

  7. HTTP各状态码解释

      状态码 含义 100 客户端应当继续发送请求.这个临时响应是用来通知客户端它的部分请求已经被服务器接收,且仍未被拒绝.客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽略这个响应.服务器必 ...

  8. JavaScript中‘this’关键词的优雅解释

    本文转载自:众成翻译 译者:MinweiShen 链接:http://www.zcfy.cc/article/901 原文:https://rainsoft.io/gentle-explanation ...

  9. XML简介与CDATA解释

    简介XML 是一种受到广泛支持的 Internet 标准,用于以一种特殊的方式编码结构化数据.实际上,以 XML 编码的数据可以通过任何编程语言解码,人们甚至可以使用标准的文本编辑器来阅读或编写 XM ...

随机推荐

  1. rest_framework 认证功能

    from django.views import View from rest_framework.views import APIView from rest_framework.authentic ...

  2. Objects and values

    If we execute these assignment statements: We know that a and b both refer to a string, but we don’t ...

  3. channels2.X 学习笔记

    - No module named 'asgiref.sync' 报错解决: # 报错原因: """ django版本过低, 卸载最新版本的 channels 使用2.x ...

  4. 程序Yuan,eclipse你,会用吗?

    程序Yuan,用eclipse敲代码时还在使用alt+/吗,还在为格式化代码ctrl+shift+f快捷键不快捷发愁吗? 如果是,那么这篇就适合你,请继续往下看. ①设置代码提示快捷键         ...

  5. solver及其配置

    solver算是caffe的核心的核心,它协调着整个模型的运作.caffe程序运行必带的一个参数就是solver配置文件.运行代码一般为 # caffe train --solver=*_slover ...

  6. TP5使用路由模式报错 No input file specified.

    热烈推荐:超多IT资源,尽在798资源网 application/route.php 是设置路由的文件. 将 route.php 代码修改为 <?php use think\Route; Ro ...

  7. yii2.0中使用jquery

    我们都知道 yii 框架是组件式开发的,使用 jquery 也是非常简单的.只需要注册一下就可以使用非常简单的 jquery 代码了! <?php $this->beginBlock('s ...

  8. mysql-5.7.25安装及常用语法

    我下的是免安装版的压缩文件包,可以选择下载.msi的程序包,那样就可以通过常见的图形界面来进行安装配置了 参考链接:https://blog.csdn.net/qq_23994787/article/ ...

  9. unity C# StackOverflowException

    有时候图省事,属性这样写public int pageCount{get{return pageCount;}set{pageCount=value;}}可能会报栈溢出的错误, StackOverfl ...

  10. vdceye 最新中文界面

    最新的vdceye 的界面.左边菜单增加了问题.并增加了虚拟摄像机部分 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdmlkZW9fZGM=/font/5 ...