1 条题解
-
0
O(n)
答案是 。
如果是 ,我们可以用 和 执行操作,这样索引 之后的前缀最小值总是 ,从而得到答案 。
如果是 ,我们可以用 和 进行运算。由于 .索引 及之后的前缀最小值将为 。我们应该小心边缘情况 ,因为没有索引 可以使用。但是,如果出现 ,我们可以干脆不执行操作。
#include<bits/stdc++.h> using namespace std; typedef long long LL; typedef pair<LL, LL> PII; #define x first #define y second const int N = 2e5 + 10, mod = 1e9 + 7; LL a[N], b[N]; void solve() { int n; cin >> n; for(int i = 1; i <= n; i ++) cin >> a[i]; cout << min(a[1] + a[2], a[1] * 2) << endl; } int main() { int t = 1; scanf("%d", &t); while(t --) solve(); }
- 1
信息
- ID
- 386
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 7
- 标签
- 递交数
- 19
- 已通过
- 8
- 上传者