博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[ZHOJ1954]lyd的旅行
阅读量:6258 次
发布时间:2019-06-22

本文共 612 字,大约阅读时间需要 2 分钟。

题目大意:

  一个做直线运动的物体已知初速度v0和v1,每分钟速度最大改变d,总共运动了t分钟,问至多运动了多少距离。(每个单位时间只能以同一种速度行驶)

思路:

  肯定是先尽可能加速再减速,我们可以想一个O(n)的贪心,从时间轴左右两端出发,然后每次在少的一端加上d,然后累加答案即可。
  观察发现这其实就是两个直线求交点,因此可以O(1)过。

1 #include
2 #include
3 inline int getint() { 4 register char ch; 5 while(!isdigit(ch=getchar())); 6 register int x=ch^'0'; 7 while(isdigit(ch=getchar())) x=(((x<<2)+x)<<1)+(ch^'0'); 8 return x; 9 }10 int main() {11 int v1=getint(),v2=getint(),t=getint(),d=getint();12 int ans=v1+v2;13 int l=1,r=t;14 while(l+1

 

转载于:https://www.cnblogs.com/skylee03/p/7600406.html

你可能感兴趣的文章
《梦断代码》读后感02
查看>>
java面试资料总结
查看>>
ubuntu 16.04 安装PhpMyAdmin
查看>>
c#中的常用ToString()方法总结
查看>>
ajax五,jsonp跨域的本质
查看>>
调用打印机打印
查看>>
poj1742
查看>>
js--val()比较少用的用法
查看>>
bzoj2002: [Hnoi2010]Bounce 弹飞绵羊
查看>>
mysql的分区和分表
查看>>
Java 读取 .properties 配置文件
查看>>
IntelliJ IDEA 12 key from twitter
查看>>
css
查看>>
装饰设计模式
查看>>
《Linux内核原理与分析》第八周作业
查看>>
企业级工作流解决方案(二)--微服务总体介绍
查看>>
Bonbo Git Server
查看>>
取消文件默认打开方式
查看>>
JVM 调试工具
查看>>
Linux C 语言 获取系统时间信息
查看>>