本题可以看做是一个数学题

因为 在第 1 和第 3 个洒水器之间的 花园灌溉的时间只要

(1 + 3 ) >> 1 - 1 + 1;//这么长的时间 那么我么就可以以此类推到

从而我么可以进行进一步的推广


例如 有10块土地待浇水 那么就是

1 2 3 4 5 6 7 8 9 10

我们假设 洒水器所处的位置为 3 和 6 那么我们发现 9 / 2 是无法整除的,但是我们可以发现 9 / 2 = 4 很明显 4 是靠近 3 的 所以灌溉 4 的时间就是 4 - 3 +1 秒(因为灌溉③这个位置还需要一秒 而其他的就是 进一步灌溉 最后总共的时间就是 2 秒 所以 我们可以得到如下公式来计算时间

(X2 + X1) / 2 - X1 + 1 我们将 3 和 6 代入公式可得 时间为 2

但是记住 是 [(X2 + X1) / 2] 是向下取整 没事咱们int自带向下取整

然后这就是我们的核心代码 接下来讨论的就是我们算完了 中间的数据后要怎样去 计算不在范围内的土地要多少时间才能被灌溉

从题目可以知道一个非常重要的条件那就是 灌溉器的位置是不断增加的 因此最后一个灌溉器的位置一定是最靠近 最后一块土地的

那么我们就可以初始化得到如下代码假设灌溉器的数组为 q 并且有 k 个灌溉器

int ans = max( q[1] , n - q[k] + 1 )

我也不卖关子了 接下来就是 AC代码了

 1 #include <iostream>
2
3 using namespace std;
4
5 const int N = 220;
6 int q[N];
7 int t, n, k;
8 int main()
9 {
10 cin >> t;
11 while (t--)
12 {
13 cin >> n >> k;
14 for (int i = 1; i <= k; i++) cin >> q[i];
15
16 int res = max(q[1], n - q[k] + 1);
17
18 for (int i = 1; i < k; i++)
19 res = max(res, ((q[i] + q[i + 1]) >> 1) + 1 - q[i]);
20 cout << res << endl;
21 }
22 return 0;
23 }

CF 920A Water The Garden的更多相关文章

  1. C - Water The Garden

    It is winter now, and Max decided it's about time he watered the garden. The garden can be represent ...

  2. 【Educational Codeforces Round 37 A】 Water The Garden

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 记录下水龙头在哪些位置. 然后每秒钟把index-i和index+i改变状态一下就好(置1 [代码] #include <bi ...

  3. Codeforces Educational Round 37

    Solved   CodeForces 920A Water The Garden   Solved   CodeForces 920B Tea Queue   Solved   CodeForces ...

  4. D - Garden

    Problem description Luba thinks about watering her garden. The garden can be represented as a segmen ...

  5. Genesis 2.8-2.12

    And the LORD God planted a garden eastward in Eden; and there he put the man whom he had formed. 9 A ...

  6. Educational Codeforces Round 37

    Educational Codeforces Round 37 这场有点炸,题目比较水,但只做了3题QAQ.还是实力不够啊! 写下题解算了--(写的比较粗糙,细节或者bug可以私聊2333) A. W ...

  7. 新概念英语(1-125)Tea for two

    Does Susan have tea by herself?A:Can't you come in and have tea now,Peter? Not yet.B:I must water th ...

  8. 第一册:lesson 125.

    原文: Tea for two. question:Does Susan have tea by herself? Can't you come in and have tea now Piter? ...

  9. Educational Codeforces Round 37 A B C D E F

    A. water the garden Code #include <bits/stdc++.h> #define maxn 210 using namespace std; typede ...

随机推荐

  1. python数据类型内置方法

    内容概要 列表内置方法 字典内置方法 字符串转换成字典的方法 eval() 元组内置方法 元组相关笔试题 集合内置方法 列表内置方法 l1 = [2, 4, 5, 7, 3, 9, 0, 6] # 升 ...

  2. c++ StrVec等效vector(string)的类

    c++ StrVec等效vector<string>的类 知识点 静态成员变量要在类外定义和初始化 allocator类是使用和uninitialized_copy的配合使用,实现stri ...

  3. 什么,有狗快跑!慢着,这次手把手教你怎么过安全狗!(sql注入篇)

    前言 在记忆里上次绕安全狗还是在上次,开开心心把自己之前绕过狗的payload拿出来,发现全部被拦截了,事情一下子就严肃起来了,这就开整. 环境 本次环境如下sqli-lab的sql注入靶场 网站安全 ...

  4. const 和指针之间的姻缘

    const和指针到底有何姻缘呢? char const *p = NULL; //char const 和 const char 是一样的,p 是一个指向常整型的指针变量 ,指针变量的值不能改变 ch ...

  5. 在服务器的docker里 装anacond3深度学习环境的全流程超基础

    ​ 背景: 实验室给我分配了一个服务器 已经装好了docker 和nvidi docker . 现在我的目标是创建我自己的docker 然后在我自己的docker里装上anaconda环境. 我以前从 ...

  6. C#源代码的组成

    引用 using  ...表达式  i=5.i>5 语句:int i=5: 快( block ):{ }

  7. Shell编程四剑客包括:find、sed、grep、awk

    一.Shell编程四剑客之Find Find工具主要用于操作系统文件.目录的查找,其语法参数格式为: find path -option [ -print ] [ -exec -ok command ...

  8. manjaro卸载与重装Arch linux

    前言 之前安装了manjaro-deepin,但太久没用了,昨天更新系统后,出了点问题,重装个新版本吧. 卸载manjaro 由于之前安装了manjaro,默认开机引导程序是linux的Grub,那么 ...

  9. 矩池云上安装及使用Milvus教程

    选择cuda10.1的镜像 更新源及拷贝文件到本地 apt-get update cp -r /public/database/milvus/ / cd /milvus/ cp ./lib/* /us ...

  10. TCC分布式事框架务详解

    之前网上看到很多写分布式事务的文章,不过大多都是将分布式事务各种技术方案简单介绍一下.很多朋友看了还是不知道分布式事务到底怎么回事,在项目里到底如何使用. 所以这篇文章,就用大白话+手工绘图,并结合一 ...