UOJ Logo

NOI.AC

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#215332#2713. 8.2t2ThySecret100168ms6272kbC++111.6kb2024-11-28 19:05:352024-11-28 23:10:27

answer

#include <bits/stdc++.h>

using namespace std;

#define int long long
// #define x first
// #define y second
#define File(a) freopen(a".in", "r", stdin), freopen(a".out", "w", stdout)

inline void debug() { cerr << '\n'; }
template<typename Type, typename... Other>
inline void debug(const Type& x, const Other&... y) { cerr << x << ' '; debug(y...); }
#define DEBUG(a...) cerr << "[" << #a << "] = ", debug(a);

typedef long long LL;
typedef pair<int, int> PII;

const int N = 3000010;
const int INF = 0x3f3f3f3f;

template<typename Type>
inline void read(Type &res)
{
    res = 0;
    int ch = getchar(), flag = 0;
    while (!isdigit(ch)) flag |= ch == '-', ch = getchar();
    while (isdigit(ch)) res = (res << 3) + (res << 1) + (ch ^ 48), ch = getchar();
    res = flag ? -res : res;
}
template<typename Type, typename... Other>
inline void read(Type &res, Other&... y) { read(res), read(y...); }

int n, m;
int a[N], b[N], ans;
int dp[N], idx[N], idy[N];

signed main()
{
    read(n, m);
    for (int i = 1; i <= n; i ++) read(a[i]);
    for (int i = 1; i <= n; i ++) read(b[i]), b[i] += a[i];
    sort(a + 1, a + 1 + n, greater<int>()), sort(b + 1, b + 1 + n, greater<int>());

    idx[0] = idy[0] = 1;
    for (int i = 0; i <= m; i ++)
    {
        ans ^= dp[i];
        if (idx[i] <= n && dp[i] + a[idx[i]] > dp[i + 1])
            dp[i + 1] = dp[i] + a[idx[i]], idx[i + 1] = idx[i] + 1, idy[i + 1] = idy[i];
        if (idy[i] <= n && dp[i] + b[idy[i]] > dp[i + 2])
            dp[i + 2] = dp[i] + b[idy[i]], idy[i + 2] = idy[i] + 1, idx[i + 2] = idx[i];
    }
    cout << ans << '\n';
}

详细

小提示:点击横条可展开更详细的信息

Test #1:

score: 10
Accepted
time: 0ms
memory: 1196kb

input:

4 10
2 2 4 8
8 4 7 10

output:

2

result:

ok 1 number(s): "2"

Test #2:

score: 10
Accepted
time: 0ms
memory: 1192kb

input:

5 10
51072389 300657765 633439665 787090487 68456665
196385267 67864372 385977125 213928095 324494080

output:

3719844854

result:

ok 1 number(s): "3719844854"

Test #3:

score: 10
Accepted
time: 0ms
memory: 1192kb

input:

5 10
48720179 139181569 338164905 149648143 77222193
187724219 91625887 540142777 43334953 184586388

output:

215635088

result:

ok 1 number(s): "215635088"

Test #4:

score: 10
Accepted
time: 29ms
memory: 5164kb

input:

100000 102662
33421051 125633985 365251021 255717315 262377226 360896081 5951202 90071401 154444767 ...

output:

69628185742891

result:

ok 1 number(s): "69628185742891"

Test #5:

score: 10
Accepted
time: 27ms
memory: 5168kb

input:

100000 102838
588484254 69882126 151341881 500364775 68104321 134809939 50886121 98623841 274710921 ...

output:

2211168290969

result:

ok 1 number(s): "2211168290969"

Test #6:

score: 10
Accepted
time: 27ms
memory: 5168kb

input:

100000 102858
816229225 31491762 141788824 11587861 40202296 167103151 76959748 111706177 185028195 ...

output:

6040329651388

result:

ok 1 number(s): "6040329651388"

Test #7:

score: 10
Accepted
time: 30ms
memory: 2760kb

input:

100000 100
12830259 71768257 32489793 11032029 534815873 25056247 9333295 338811835 392555485 787185...

output:

4970387228

result:

ok 1 number(s): "4970387228"

Test #8:

score: 10
Accepted
time: 23ms
memory: 2760kb

input:

100000 100
72601214 53610670 93861411 367396001 45683503 4337367 98950041 888815737 409387861 106118...

output:

134182801545

result:

ok 1 number(s): "134182801545"

Test #9:

score: 10
Accepted
time: 16ms
memory: 6272kb

input:

100000 150000
667 605 113 157 314 281 1 234 801 121 561 414 25 953 434 233 421 601 993 969 209 695 7...

output:

33097015

result:

ok 1 number(s): "33097015"

Test #10:

score: 10
Accepted
time: 16ms
memory: 6272kb

input:

100000 150000
96 945 103 451 167 433 537 867 781 656 145 507 381 960 753 700 93 133 122 952 393 985 ...

output:

7610868

result:

ok 1 number(s): "7610868"