QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#776571#8760. 不等式WilliamFungWA 2ms9688kbC++113.1kb2024-11-23 19:26:432024-11-23 19:26:43

Judging History

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

  • [2024-11-23 19:26:43]
  • 评测
  • 测评结果:WA
  • 用时:2ms
  • 内存:9688kb
  • [2024-11-23 19:26:43]
  • 提交

answer

#include <bits/stdc++.h>
#define endl '\n'
#define all(a) a.begin(), a.end()
#define ll long long
#define ull unsigned long long
#define inf 0x7fffffff;
//#define int long long
//#define III int
using namespace std;
using vi = vector<int>;
using vl = vector<ll>;
using vii = vector<vector<int>>;
using vll = vector<vector<ll>>;
using vpii = vector<pair<int, int>>;
using vpll = vector<pair<ll, ll>>;
//cout << ceil(-0.2) << endl;
const ll mod = 1e9 + 7;
//const ll mod = 998244353;
const ll INF = 1e18;

// struct node {
//     ll dis, u;
//     int hh;
//     bool operator>(const node &a) const {return dis > a.dis;}
// };

struct now {
    ll a, b;
    bool operator<(const now& x) const {
        return a < x.a;
    }
};

ll qpow (ll a, ll b) {
    ll ret = 1;
    a %= mod;
    while (b) {
        if (b & 1) {
            ret *= a;
            ret %= mod;
        }
        b /= 2;
        a = (a * a) % mod;
    }
    return ret;
}

ll cmp (ll a, ll b) {
    if (a == 0) return 0;
    if (a > b / 2) a = b - a;
    ll x = 1, y = 1;
    for (int i = 0; i < a; i++) {
        x *= b - i;
        x %= mod;
    }
    for (int i = 1; i <= a; i++) {
        y *= i;
        y %= mod;
    }
    ll ret = x * qpow(y, mod - 2);
    ret %= mod;
    return ret;
}
int dir[4][2] = {{0, 1}, {0, -1}, {1, 0}, {-1, 0}};

struct node {
    ll w, l, r;
};

// //int n;
// ll tree[500005];
// int lowbit(int x) {
//     return x & (-x);
// }
// void add(int l, ll x) {
//     for (int i = l; i <= n; i += lowbit(i)) {
//         tree[i] += x;
//     }
// }
// ll sum(int r) {
//     ll ret = 0;
//     for (int i = r; i >= 1; i -= lowbit(i)) {
//         ret += tree[i];
//     }
//     return ret;
// }

int n, m;
ll in[200010];
vector<pair<int, int>> g[200010];
void solve() {
    cin >> n >> m;
    for (int i = 1; i <= m; i++) {
        int a, b, c;
        cin >> a >> b >> c;
        g[b].emplace_back(a, c);
        g[c].emplace_back(a, b);
        in[a]++;
    }
    queue<int> q;
    vector<ll> ans(n + 1);
    vector<int> flag(n + 1);
    for (int i = 1; i <= n; i++) {
        if (in[i] == 0) {
            q.push(i);
            ans[i] = 1;
            flag[i] = 1;
        }
    }
    while (!q.empty()) {
        int u = q.front();
        q.pop();
        for (auto p : g[u]) {
            if (flag[p.second]) {
                ans[p.first] = max(ans[p.first], ans[u] + ans[p.second]);
                in[p.first]--;
                if (in[p.first] == 0) {
                    q.push(p.first);
                    flag[p.first] = 1;
                }
            }
        }
    }
    for (int i = 1; i <= n; i++) {
        if (flag[i] == 0) {
            cout << -1 << endl;
            return;
        }
    }
    ll sum = 0;
    for (int i = 1; i <= n; i++) {
        sum += ans[i];
    }
    cout << sum << endl;
}



int main() {
    std::ios::sync_with_stdio(false); std::cin.tie(nullptr); std::cout.tie(nullptr);
    // helper();
    int t = 1;
    //cin >> t;
    while (t--) solve();




    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 1ms
memory: 8420kb

input:

3 1
1 2 2

output:

4

result:

ok 1 number(s): "4"

Test #2:

score: 0
Accepted
time: 1ms
memory: 8520kb

input:

3 1
1 2 3

output:

4

result:

ok 1 number(s): "4"

Test #3:

score: 0
Accepted
time: 1ms
memory: 9372kb

input:

3 1
1 2 2

output:

4

result:

ok 1 number(s): "4"

Test #4:

score: 0
Accepted
time: 1ms
memory: 9312kb

input:

3 1
1 2 2

output:

4

result:

ok 1 number(s): "4"

Test #5:

score: 0
Accepted
time: 1ms
memory: 8512kb

input:

3 1
1 2 2

output:

4

result:

ok 1 number(s): "4"

Test #6:

score: 0
Accepted
time: 1ms
memory: 8908kb

input:

5 1
1 2 2

output:

6

result:

ok 1 number(s): "6"

Test #7:

score: 0
Accepted
time: 1ms
memory: 8988kb

input:

5 1
1 2 2

output:

6

result:

ok 1 number(s): "6"

Test #8:

score: 0
Accepted
time: 2ms
memory: 9644kb

input:

5 1
1 2 2

output:

6

result:

ok 1 number(s): "6"

Test #9:

score: 0
Accepted
time: 0ms
memory: 9248kb

input:

5 1
1 2 3

output:

6

result:

ok 1 number(s): "6"

Test #10:

score: 0
Accepted
time: 0ms
memory: 9564kb

input:

5 2
1 2 3
2 3 4

output:

8

result:

ok 1 number(s): "8"

Test #11:

score: 0
Accepted
time: 0ms
memory: 9188kb

input:

10 1
1 2 3

output:

11

result:

ok 1 number(s): "11"

Test #12:

score: 0
Accepted
time: 0ms
memory: 8244kb

input:

10 1
1 2 2

output:

11

result:

ok 1 number(s): "11"

Test #13:

score: 0
Accepted
time: 1ms
memory: 8580kb

input:

10 2
1 2 3
2 3 4

output:

13

result:

ok 1 number(s): "13"

Test #14:

score: 0
Accepted
time: 2ms
memory: 9688kb

input:

10 2
1 2 2
2 3 4

output:

14

result:

ok 1 number(s): "14"

Test #15:

score: 0
Accepted
time: 1ms
memory: 8524kb

input:

10 3
1 2 3
1 8 8
2 3 3

output:

13

result:

ok 1 number(s): "13"

Test #16:

score: 0
Accepted
time: 1ms
memory: 8984kb

input:

20 1
1 2 2

output:

21

result:

ok 1 number(s): "21"

Test #17:

score: 0
Accepted
time: 1ms
memory: 9332kb

input:

20 2
1 2 3
2 3 3

output:

23

result:

ok 1 number(s): "23"

Test #18:

score: 0
Accepted
time: 0ms
memory: 8624kb

input:

20 3
7 14 6
1 2 3
4 7 20

output:

24

result:

ok 1 number(s): "24"

Test #19:

score: 0
Accepted
time: 2ms
memory: 8752kb

input:

20 4
1 2 2
6 10 6
2 3 3
3 4 5

output:

-1

result:

ok 1 number(s): "-1"

Test #20:

score: 0
Accepted
time: 0ms
memory: 8376kb

input:

20 5
1 17 3
1 2 3
2 3 4
3 4 5
8 13 16

output:

28

result:

ok 1 number(s): "28"

Test #21:

score: 0
Accepted
time: 0ms
memory: 9556kb

input:

200 9
1 2 2
2 3 3
3 4 5
91 112 195
126 145 82
4 5 5
53 2 15
5 6 6
6 7 7

output:

318

result:

ok 1 number(s): "318"

Test #22:

score: 0
Accepted
time: 0ms
memory: 9116kb

input:

200 17
1 2 2
100 69 47
159 84 111
2 3 3
3 4 5
4 5 5
8 9 76
5 6 7
158 81 154
189 62 45
192 159 181
6 7 7
15 181 91
7 193 152
140 65 66
7 8 9
32 157 67

output:

428

result:

ok 1 number(s): "428"

Test #23:

score: 0
Accepted
time: 1ms
memory: 9376kb

input:

200 25
118 152 40
172 193 173
126 32 89
1 2 3
147 148 112
2 3 4
3 4 4
35 116 95
179 193 64
70 22 55
4 5 5
5 6 6
24 74 182
184 168 129
6 7 8
7 8 9
109 63 173
8 9 10
38 125 106
68 147 40
33 65 46
144 12 168
9 10 11
10 11 11
190 73 48

output:

835

result:

ok 1 number(s): "835"

Test #24:

score: -100
Wrong Answer
time: 1ms
memory: 8892kb

input:

200 33
1 2 3
165 80 199
2 3 4
10 80 12
3 4 5
4 5 6
5 6 7
128 1 190
6 7 7
166 124 95
7 8 9
60 51 80
25 158 81
108 107 99
8 9 9
9 10 10
10 11 12
54 41 100
11 12 13
176 185 149
12 13 13
13 14 14
14 15 16
15 16 17
16 17 17
128 73 196
17 18 19
93 169 141
18 19 19
19 20 20
20 21 21
21 22 22
12 55 32

output:

3515

result:

wrong answer 1st numbers differ - expected: '543121', found: '3515'