CF 920A Water The Garden
本题可以看做是一个数学题
因为 在第 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的更多相关文章
- C - Water The Garden
It is winter now, and Max decided it's about time he watered the garden. The garden can be represent ...
- 【Educational Codeforces Round 37 A】 Water The Garden
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 记录下水龙头在哪些位置. 然后每秒钟把index-i和index+i改变状态一下就好(置1 [代码] #include <bi ...
- Codeforces Educational Round 37
Solved CodeForces 920A Water The Garden Solved CodeForces 920B Tea Queue Solved CodeForces ...
- D - Garden
Problem description Luba thinks about watering her garden. The garden can be represented as a segmen ...
- 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 ...
- Educational Codeforces Round 37
Educational Codeforces Round 37 这场有点炸,题目比较水,但只做了3题QAQ.还是实力不够啊! 写下题解算了--(写的比较粗糙,细节或者bug可以私聊2333) A. W ...
- 新概念英语(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 ...
- 第一册:lesson 125.
原文: Tea for two. question:Does Susan have tea by herself? Can't you come in and have tea now Piter? ...
- 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 ...
随机推荐
- find 查询命令 & 正则表达式
今日内容 find 正则表达式 Linux 三剑客之 grep 内容详细 一.find 按名称或属性查询文件 按名称查询 find [查找目录] [参数] [] 通配符 : * 表示匹配多个字符 ? ...
- 请你说说Spring
一. Spring是什么? 是一个轻量级的开源容器框架,用来装JavaBean,可以把其他的一些框架进行整合使用,使得开发更快,更简洁. 轻量级:占用空间小,非入侵式的(Spring中的对象不依赖于S ...
- Spring MVC项目快速搭建(编程模型)
1)配置DispatcherServlet前端控制器(web配置) 2)将xml文件路径告诉Spring MVC(DispatcherServlet) 以上两步等价于继承了WebApplication ...
- 【计理01组08号】SSM框架整合
[计理01组08号]SSM框架整合 数据库准备 本次课程使用 MySQL 数据库.首先启动 mysql : sudo service mysql start 然后在终端下输入以下命令,进入到 MySQ ...
- 2022李宏毅作业hw1—新冠阳性人员数量预测。
事前 : kaggle地址:ML2021Spring-hw1 | Kaggle 我的git地址: https://github.com/xiaolilaoli/lihongyi2022homew ...
- 当TIME_WAIT状态的TCP正常挥手,收到SYN后…
摘要:今天就来讨论下这个问题,在TCP正常挥手过程中,处于TIME_WAIT状态的连接,收到相同四元组的SYN后会发生什么? 本文分享自华为云社区<在TIME_WAIT状态的TCP连接,收到SY ...
- 【C# 线程】Windows系统下常见的7种I/O模型 之Overlapped I/O模型
overview 这个字符到底是什么含义呢?其实它的意思就是当程序在等待设备操作的时候,可以继续往下做而不必阻塞到那个地方等待设备操作的返回,这就造成了程序运行和设备操作时间上的重叠. Overla ...
- Oracle之表和字段的注释
给表名加上注释 --给表名加上注释的语法结构 --语法结构:COMMENT ON TABLE 英文表名 IS '中文注释' COMMENT ON TABLE DEPT IS '部门表'; 给字段加上注 ...
- 经验分享:分析如何使程序在Linux下后台运行---Linux就该这么学!
转至:https://www.cnblogs.com/maoju/p/13848740.html 一.为什么要使程序在后台执行 我们计算的程序都是周期很长的,通常要几个小时甚至一个星期.我们用的环 ...
- CentOS 7 下如何进行Python3的独立安装
一.部署准备工作 部署环境工具检查及安装 1)安装epel-release库,以防db4-devel依赖安装失败 1 yum -y install epel-release 2)安装外部函数库(lib ...