首页 > 其他 > 详细

2017国家集训队作业[arc082d]Sandglass

时间:2018-08-18 20:58:00      阅读:180      评论:0      收藏:0      [点我收藏+]

2017国家集训队作业[arc082d]Sandglass

题意:

? 有一个沙漏,初始时\(A\)瓶在上方,两个瓶子的最大容量都为\(X\)克,沙子流动的速度为\(1g\)每单位时间。给出\(K\)个时间点\(r_1\sim r_K\)表示在这几个时间点,漏斗会上下翻转,无视翻转时间。给出\(Q\)个询问,每个询问两个数\(t_i,a_i\),表示若初始时\(A\)瓶有\(a_i\)克沙子,询问第\(t_i\)单位时间时,\(A\)瓶中会有多少克沙子?(\(X,t_i,r_i\leq 10^9,a_i\leq X,K\leq 10^5\),输入保证序列\(\{r_i\}\)\(\{t_i\}\)为升序)

题解:

? 最后半小时想出来,真的惨。

? 观察发现\(A\)瓶中的沙子函数图像由若干个斜率为\(1,-1,0\)的一次函数组成。若存在某一时刻,该函数的斜率为\(0\)(即碰到上下边界),那么在此以后,函数的图像与截距(\(a_i\))无关。

? 初始截距(\(a_i\))的取值会使该函数出现三种情况:

\(1.\)只会碰到上边界

\(2.\)只会碰到下边界

\(3.\)上下边界都不会碰到

? 还存在一种情况:无论\(a_i\)的值是什么,该函数总会碰到上或下边界。

? 分别维护\(a\)的区间即可。

? 代码有时间再补。

2017国家集训队作业[arc082d]Sandglass

原文:https://www.cnblogs.com/JackyhhJuRuo/p/9498575.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!