给定 k k k层楼的楼栋,现在有一个电梯从 1 1 1楼出发,最多承载 m m m人,电梯有故障,向下运行时必须到达 1 1 1楼方可改变方向。有 n n n个人希望从 a i a_i ai楼层到达 b i b_i bi楼层,问电梯至少需要跑多少趟。
设 a n s u p [ i ] ansup[i] ansup[i]表示向上走的第 i i i轮到达的最高的层数, a n s d o w n [ i ] ansdown[i] ansdown[i]表示向下走的第 i i i轮出发的最高层数,那么最终答案就是枚举轮数 i i i, a n s + = max ( a n s u p [ i ] , a n s d o w n [ i ] ) ∗ 2 − 2 ans += \max(ansup[i], ansdown[i]) * 2 - 2 ans+=max(ansup[i],ansdown[i])∗2−2,得到最终答案。
那么可以分上下两个过程,分别存下所有的端点(带标记),每个乘客分配的轮数可以通过 ⌈ m + c n t m ⌉ \lceil \frac{m + cnt}{m}\rceil ⌈mm+cnt⌉得到。
Code#include
#pragma gcc optimize(2)
#define int long long
#define endl '\n'
using namespace std;
const int N = 2e5 + 10, MOD = 1e9 + 7;
struct node{ int s, t; }up[N], down[N];
int ansup[N], ansdown[N];
inline void solve(){
int n = 0, m = 0, k = 0; cin >> n >> m >> k;
int upcnt = 0, downcnt = 0;
for(int i = 1; i > a >> b;
if(a
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?