CF618F Double Knapsack
我们从
当
考虑
也即
如果
现在我们试图证明
如果试图取
取数的前提条件就是
如果试图取
/*
* @Author: crab-in-the-northeast
* @Date: 2023-06-14 13:42:39
* @Last Modified by: crab-in-the-northeast
* @Last Modified time: 2023-06-14 14:52:39
*/
#include <bits/stdc++.h>
inline int read() {
int x = 0;
bool f = true;
char ch = getchar();
for (; !isdigit(ch); ch = getchar())
if (ch == '-')
f = false;
for (; isdigit(ch); ch = getchar())
x = (x << 1) + (x << 3) + ch - '0';
return f ? x : (~(x - 1));
}
const int N = (int)1e6 + 5;
int a[N], b[N];
typedef std :: pair <int, int> pii;
pii st[N << 1];
int main() {
int n = read();
for (int i = 1; i <= n; ++i)
a[i] = read();
for (int i = 1; i <= n; ++i)
b[i] = read();
st[n] = {1, 1};
for (int d = n, i = 1, j = 1; ; ) {
if (d <= n)
d += a[i++];
else
d -= b[j++];
if (st[d].first) {
int p = st[d].first, q = st[d].second;
auto f = [](int l, int r) {
printf("%d\n", r - l);
for (int i = l; i < r; ++i)
printf("%d ", i);
puts("");
};
f(p, i);
f(q, j);
return 0;
} else
st[d] = {i, j};
}
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】