日常刷题2025-2-24
1.日常刷题2025-3-162.日常训练2025-1-23.日常训练2025-1-34.日常训练2025-1-55.日常训练2025-1-86.日常训练2025-1-117.日常训练2025-1-128.日常训练2025-1-139.日常训练2025-1-1410.日常训练2025-1-1511.日常训练2025-1-1612.日常训练2025-1-1713.日常训练2025-1-1814.日常训练2025-1-1915.日常训练2025-1-2116.日常训练2025-1-2217.日常刷题2025-1-2318.日常训练2025-1-2419.日常刷题2025-1-2520.日常刷题21.日常刷题2025-2-622.日常刷题2025-2-923.日常刷题2025-2-1424.日常刷题2025-2-1525.日常刷题2025-2-1726.日常刷题2025-2-2027.日常刷题2025-2-2128.日常刷题2025-2-22
29.日常刷题2025-2-24
30.日常刷题2025-2-2631.日常刷题2025-2-2732.日常刷题2025-2-2833.日常刷题2025-3-134.日常刷题2025-3-235.日常刷题2025-3-336.日常刷题2025-3-537.日常刷题2025-3-638.日常刷题2025-3-739.日常刷题2025-3-840.日常刷题2025-3-941.日常刷题2025-3-1042.日常刷题2023-3-1143.日常刷题2025-3-1344.非常棒的二分和DP日常刷题2025-2-24
和+和
思路:预处理+优化枚举
A[i]:为i之前的子序列的和的最小值,B[i]:为i之后的子序列和的最小值
枚举子序列我们使用的是优先级队列
当只需要维护最大值或最小值时可以采用优先级队列。
代码
#include <bits/stdc++.h> typedef std::pair<long long, long long> pll; typedef std::pair<int, int> pii; #define INF 0x3f3f3f3f #define MOD 998244353 using i64 = long long; const int N = 1e5+5; void solve(){ int n, m; std::cin >> n >> m; std::vector<i64> a(n+1), b(n+1); for (int i = 1; i <= n; i++) std::cin >> a[i]; for (int i = 1; i <= n; i++) std::cin >> b[i]; std::priority_queue<i64> q; std::vector<i64> A(n+1), B(n+1); i64 s = 0; for (int i = 1; i <= m; i++){ s += a[i]; q.push(a[i]); } A[m] = s; for (int i = m + 1; i <= n; i++){ i64 tmp = q.top(); if (tmp > a[i]){ s -= tmp; s += a[i]; q.pop(); q.push(a[i]); } A[i] = s; } while (!q.empty()) q.pop(); s = 0; for (int i = n; i >= n - m + 1; i--){ s += b[i]; q.push(b[i]); } B[n-m+1] = s; for (int i = n - m; i >= 1; i--){ i64 tmp = q.top(); if (tmp > b[i]){ s -= tmp; s += b[i]; q.pop(); q.push(b[i]); } B[i] = s; } i64 ans = 1e18; for (int i = m; i <= n - m; i++){ ans = std::min(ans, A[i] + B[i+1]); } std::cout << ans << '\n'; } signed main() { std::ios::sync_with_stdio(false); std::cin.tie(nullptr); std::cout<<std::setiosflags(std::ios::fixed)<<std::setprecision(2); int t = 1, i; for (i = 0; i < t; i++){ solve(); } return 0; }
本文作者:califeee
本文链接:https://www.cnblogs.com/califeee/p/18734099
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步