QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#412545#4561. Catfish Farmhmm7890 0ms4092kbC++142.7kb2024-05-16 16:00:512024-05-16 16:00:53

Judging History

你现在查看的是最新测评结果

  • [2024-05-16 16:00:53]
  • 评测
  • 测评结果:0
  • 用时:0ms
  • 内存:4092kb
  • [2024-05-16 16:00:51]
  • 提交

answer

#include "fish.h"
#include <bits/stdc++.h>
using namespace std;

long long max_weights(int N, int M, vector<int> X, vector<int> Y, vector<int> W) {
#define int long long
#define INF 1000000000000000000
    int ans = 0;
    vector<int> dp[2][6];
    set<pair<int, int>> fish[N+1], pref[N+1];
    set<pair<int, int>> s[2][N+1];
    for(int i = 0; i < M; i++) {
        fish[X[i]+1].insert({Y[i], W[i]});
    }
    for(int i = 0; i <= N; i++) {
        if(fish[i].empty() || fish[i].begin()->first) fish[i].insert({0,0});
        fish[i].insert({N,0});
        int cnt = 0;
        for(auto j : fish[i]) {
            pref[i].insert({j.first, cnt});
            cnt += j.second;
        }
    }
    dp[0][0].push_back(0); dp[0][0].push_back(-INF);
    dp[1][0].push_back(-INF); dp[1][0].push_back(-INF);
    s[0][0].insert({0, 0});
    s[1][0].insert({0, 0});
    s[1][0].insert({N, INF});
    for(int i = 1; i <= N; i++) {
        int cnt = 0;
        for(auto j : fish[i]) {
            for(int k = 0; k < 2; k++) {
                if(k == 0) { // up
                    auto it = s[0][i-1].upper_bound({j.first+1, INF}); it--;
                    auto tmp = pref[i-1].lower_bound({j.first, -INF});
                    int a1 = it->second + tmp->second;
                    if(j.first == 0) {
                        a1 = max(a1, dp[1][i-1][0]);
                    }
                    if(i == 1) a1 = 0;
                    dp[k][i].push_back(a1);
                    if(i < N) {
                        auto tmp = pref[i+1].lower_bound({j.first, -INF});
                        s[0][i].insert({j.first, max(dp[k][i].back() - cnt, (s[0][i].size() ? s[0][i].rbegin()->second : -INF))});
                        s[1][i].insert({j.first, -max(dp[k][i].back() + tmp->second, (s[1][i].size() ? s[1][i].begin()->second : -INF))});
                    }
                } else {
                    auto it = s[1][i-1].lower_bound({j.first, -INF});
//                    cout << "process " << i << " " << j.first << " " << k << endl;
//                    for(auto it2 : s[1][i-1]) cout << it2.first << " " << -it2.second << endl;
                    dp[k][i].push_back(-it->second - cnt);
                    if(i < N) {
                        auto tmp = pref[i+1].lower_bound({j.first, -INF});
                        int toins = max(dp[k][i].back() + tmp->second, (s[1][i].size() ? s[1][i].begin()->second : -INF));
                        s[1][i].insert({j.first, -toins});
                    }
                }
//                cout << i << " " << j.first << " " << k << " " << dp[k][i].back() << endl;
                ans = max(ans, dp[k][i].back());
            }
            cnt += j.second;
        }
    }
    return ans;
#undef int
}

Details

Tip: Click on the bar to expand more detailed information

Subtask #1:

score: 0
Runtime Error

Test #1:

score: 0
Runtime Error

input:

f785163bfcb92ce6ac387bba5d2f29a0e0f37f19
90000 80699
0 10792 55091480
0 36762 389250726
0 79267 706445371
0 76952 290301137
0 13444 69711795
0 68980 66221400
0 1695 703252611
0 36628 632571604
0 87676 264578012
0 79496 397448339
0 57929 447544332
0 35453 355374818
0 62449 686423696
0 45614 667165709...

output:

Unauthorized output

result:


Subtask #2:

score: 0
Runtime Error

Test #7:

score: 6
Accepted
time: 0ms
memory: 3832kb

input:

f785163bfcb92ce6ac387bba5d2f29a0e0f37f19
3 2
0 0 1
1 1 1

output:

938f2698235a9ff1d1d91e23381b68bec7bed102
OK
2

result:

ok 3 lines

Test #8:

score: -6
Runtime Error

input:

f785163bfcb92ce6ac387bba5d2f29a0e0f37f19
90000 161862
0 56823 293232472
0 28967 124369573
1 8799 138712011
0 87115 743135614
1 56429 262092699
0 61318 597172732
0 39127 477101342
1 44938 277680401
1 79037 997527330
1 88113 13289754
0 29715 35249311
0 50637 709319782
1 20760 845594381
1 80662 6299890...

output:

Unauthorized output

result:


Subtask #3:

score: 0
Runtime Error

Test #20:

score: 0
Runtime Error

input:

f785163bfcb92ce6ac387bba5d2f29a0e0f37f19
100000 1
0 0 10082010

output:

Unauthorized output

result:


Subtask #4:

score: 0
Runtime Error

Test #28:

score: 14
Accepted
time: 0ms
memory: 4092kb

input:

f785163bfcb92ce6ac387bba5d2f29a0e0f37f19
4 3
2 2 1
0 0 1
1 1 1

output:

938f2698235a9ff1d1d91e23381b68bec7bed102
OK
3

result:

ok 3 lines

Test #29:

score: -14
Runtime Error

input:

f785163bfcb92ce6ac387bba5d2f29a0e0f37f19
8 7
5 5 1
4 4 1
6 6 1
3 3 1
0 0 1
2 2 1
1 1 1

output:

Unauthorized output

result:


Subtask #5:

score: 0
Skipped

Dependency #4:

0%

Subtask #6:

score: 0
Skipped

Dependency #5:

0%

Subtask #7:

score: 0
Runtime Error

Test #60:

score: 0
Runtime Error

input:

f785163bfcb92ce6ac387bba5d2f29a0e0f37f19
100000 99999
31026 31026 1
42940 42940 1
69303 69303 1
90350 90350 1
77507 77507 1
87126 87126 1
17988 17988 1
5146 5146 1
63023 63023 1
27776 27776 1
6136 6136 1
82557 82557 1
24904 24904 1
21667 21667 1
67271 67271 1
80294 80294 1
81145 81145 1
47144 47144 ...

output:

Unauthorized output

result:


Subtask #8:

score: 0
Skipped

Dependency #1:

0%