[COGS 2064]爬山
2064. 爬山
★☆ 输入文件:
mountain.in输出文件:mountain.out简单对比
时间限制:1 s 内存限制:256 MB【题目描述】
球有一天走在街上。
一个健身房发传单的人对球说:“来健身吗?还能减肥,挺好的!”。
球很不高兴。球一点都不觉得自己很胖,不过球还是决定去锻炼。
球最终选择了爬山。
球第一分钟位于海拔为a的地方。那之后,球每分钟可以向上爬不超过d米,也可以向下滚不超过d米,也可以原地不动(d米指的是竖直高度)。球在第n分
钟时位于海拔为b的地方。
球想知道,在不考虑山地形的情况下,他最高可以到过海拔为多少的地方。
【输入格式】
一行四个整数,分别为n,d,a,b,含义见题面描述。
【输出格式】
一行一个整数,表示答案。
【样例输入】
3 5 2 4【样例输出】
7【提示】
样例解释
球第一一分钟在海拔为2的位置,第二分钟向上爬5米到达海拔为7的位置,第三分钟向下滚3米到达海拔为4的位置。这样他到达过最高的地方海拔为7米。其他方案到过最高的地方都小于7米。
对于20%的数据,n=2。
对于60%的数据,2≤n≤10^6。
对于100%的数据,2≤n≤10^12,0≤d≤1000,-1000≤a,b≤1000,保证存
在一种爬山方案合法。
题解
看数据范围大概就知道是个 $O(1)$ 或者 $O(log(n))$ 好题了233
大概有两种思路:
1.首先计算起点与终点间的差值, 然后计算出补齐差值到一跳之内所需要的跳数, 然后把剩余的跳数均分, 均分后的跳数乘以一跳的最大距离再加上补齐后两个端点的高度取个最小值就可以了. 时间复杂度 $O(1)$
2.二分答案, 判断从起点走到答案所需的跳数与从答案走到终点所需的跳数, 在跳数和合法的情况下二分最大值, 时间复杂度 $O(log(n))$
参考代码
这里我写的是第一种 $O(1)$ 的思路
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <iostream>
#include <algorithm> int main(){
freopen("mountain.in","r",stdin);
freopen("mountain.out","w",stdout);
long long n,d,a,b;
scanf("%lld%lld%lld%lld",&n,&d,&a,&b);
n--;
if(d==)
printf("%lld\n",b);
else{
if(a>b)
std::swap(a,b);
long long dx=b-a;
long long cnt=dx/d;
long long tmp=(n-cnt)/;
printf("%lld\n",std::max(std::max(a,b),std::min(a+(n-tmp)*d,b+tmp*d)));
}
}
Backup

[COGS 2064]爬山的更多相关文章
- no zuo no die
#include <iostream> #include <cstring> #include <cstdio> using namespace std; name ...
- 【COGS 254】【POI 2001】交通网络图
http://www.cogs.top/cogs/problem/problem.php?pid=254 dist[i]表示能最早到达i点的时间.这样就可以用最短路模型来转移了. #include&l ...
- ural 2064. Caterpillars
2064. Caterpillars Time limit: 3.0 secondMemory limit: 64 MB Young gardener didn’t visit his garden ...
- 【COGS】894. 追查坏牛奶
http://cojs.tk/cogs/problem/problem.php?pid=894 题意:n个点m条边的加权网络,求最少边数的按编号字典序最小的最小割.(n<=32, m<=1 ...
- 【COGS】147. [USACO Jan08] 架设电话线(二分+spfa)
http://cojs.tk/cogs/problem/problem.php?pid=147 学到新姿势了orz 这题求的是一条1-n的路径的最大路径最小. 当然是在k以外的. 我们可以转换一下. ...
- 【COGS & USACO Training】710. 命名那个数字(hash+水题+dfs)
http://cojs.tk/cogs/problem/problem.php?pid=710 近日开始刷水... 此题我为了练一下hash...但是hash跑得比暴力还慢.. 不言而喻... #in ...
- 【COGS & USACO】896. 圈奶牛(凸包)
http://cojs.tk/cogs/problem/problem.php?pid=896 我的计算几何入门题... 看了看白书的计算几何部分,,恩好嘛.. 乃们都用向量!!!! 干嘛非要将2个点 ...
- 【COGS】714. USACO 1.3.2混合牛奶(贪心+水题)
http://cojs.tk/cogs/problem/problem.php?pid=714 在hzwer的刷题记录上,默默地先跳过2题T_T...求凸包和期望的..T_T那是个啥..得好好学习 看 ...
- POJ 2420 A Star not a Tree? 爬山算法
B - A Star not a Tree? Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/co ...
随机推荐
- R语言矩阵matrix函数
矩阵是元素布置成二维矩形布局的R对象. 它们包含相同原子类型的元素.尽管我们可以创建只包含字符或只逻辑值的矩阵,但是它们没有多大用处.我们使用的是在数学计算中含有数字元素矩阵. 使用 matrix() ...
- cmd sc命令进行服务操作
sc 命令可以注册.删除和查询系统服务 sc可供选择的参数有很多,这里不详细描述.只介绍简单的最基本的sc使用方式. 1. sc create 创建windows服务 eg: sc \\myserve ...
- 报错The VMware Authorization Service is not running
今天上linux课程的时候,开启虚拟机报错: The VMware Authorization Service is not running 解决方案里面各种提供: 1.以管理员身份运行虚拟机,治标不 ...
- mac terminal中快捷移动光标 持续更新。。。
1.option + ←/→ 以单词为单位快速移动 2.ctrl + A 移动到行首 3.ctrl + B 移动到行尾 4.ctrl + K 删除光标后至行尾的内容
- FE面试题库
一.HTML 序号 面试题目 难度等级 回答要点 H1 简述编写HTML需要注意哪些事项? ☆ DOCTYPE.charset.viewport.语义化.CSS与JS的位置.DOM层级.结构样式行为的 ...
- 在 Azure Web 应用中创建 .NET 应用程序
本快速入门帮助你在数分钟内将你的第一个 ASP.NET Web 应用部署到 Azure 应用服务.完成本教程后,你将能够在云中启动并运行一个简单的 Web 应用.在本教程中完成的所有操作均符合1 元试 ...
- 十五、读写锁ReentrantReadWriteLock
一.简介 有时候我们对资源的修改操作非常地少,但是读取的频率却很高.如果采用一般的互斥锁,那么大量的读取操作也需要做等待.基于读写分离的思想,我们可以使用JDK的读写锁来处理这种情况. 1)读读不互斥 ...
- 二进制之Java位运算(一)
1. 位运算符 下表列出了位运算符的基本运算,假设整数变量A的值为60和变量B的值为13: (表格来自菜鸟教程) 操作符 描述 例子 & 如果相对应位都是1,则结果为1,否则为0 (A& ...
- C#学习笔记-继承基本知识
namespace Inheritance { class Program { static void Main(string[] args) { Dog dog = new Dog(); dog.A ...
- Freebsd10.3 Nginx多版本PHP
服务器上需要使用多个php版本,费了好几天劲,终于有所收获.记录如下: 1.下载php-5.5.37.tar.bz2. 2.tar zvxf php-5.5.37.tar.bz2 -C /usr/l ...