Div3 595 E
By Elevator or Stairs? 简单的二维DP $f[i][j] $ 表示第 \(i-1\) 层使用 第 \(j\) 种方法达到 第 \(i\) 所需要的最短时间, \(j = 0\) 代表 走楼梯, \(j = 1\) 电梯。 \(f[i+1][0]\) 表示第 \(i\) 层使用 楼梯 到达 第 \(i+1\) 层的最短时间 只有当第 \(i\) 层走楼梯,第 \(i+1\) 层走电梯的时候,才用加上 \(c\) 它是等待电梯的时候, 如果 第 \(i\) 层已经在电梯里面,第 \(i+1\) 不用等电梯就可以上去了,所以不用加 \(c\) #include <bits/stdc++.h> using namespace std; const int N = 2e5 + 10; int n,c; int a[N],b[N],f[N][2]; // f1,0 不在电梯,f1,1 在电梯内 int main(){ bool ok = 1; cin >> n >> c; for(int i = 1;i < n; ++i) cin >> a[i]; for(int i = 1;i < n; ++i) cin >> b[i]; memset(f,0x3f,sizeof f); f[1][0] = 0,f[1][1] = c; for(int i = 1;i < n; ++i