编号 题目 状态 分数 总时间 内存 代码 / 答案文件 提交者 提交时间
#18174 #1008. H. 开疆辟土,公司成立 Accepted 100 370 ms 7296 K C++ 11 / 1.1 K Diorvh 2019-07-15 16:07:14
显示原始代码
#include <bits/stdc++.h>
using namespace std;
#define MAX 400000
struct E {
    int u, v, value;
    E(int a = 0, int b = 0, int c = 0) : u(a), v(b), value(c) {}
    bool operator<(E x) { return (value > x.value); }
};
int road[MAX];
int fnd(int x) { return (x == road[x]) ? x : road[x] = fnd(road[x]); }
void merge(int u, int v) { road[fnd(u)] = fnd(v); }
int main() {
    int T, n, m, c1, c2;
    scanf("%d", &T);
    for (int z = 1; z <= T; ++z) {
        vector<E> q;
        scanf("%d%d", &n, &m);
        int total = 0, ans = 0;
        for (int i = 1; i <= n; ++i)
            for (int j = 1; j <= m; ++j) {
                scanf("%d%d", &c1, &c2);
                total += c1 + c2;
                int b = (i - 1) * m + j;
                if (b <= (n - 1) * m)
                    q.push_back(E(b, b + m, c1));
                if (b % m)
                    q.push_back(E(b, b + 1, c2));
            }
        sort(q.begin(), q.end());
        for (int i = 1; i <= n * m; ++i) road[i] = i;
        for (E i : q)
            if (fnd(i.u) != fnd(i.v)) {
                merge(i.u, i.v);
                ans += i.value;
            }
        printf("%d\n", total - ans);
    }
    return 0;
}
子任务 #1
Accepted
得分:100
测试点 #1
Accepted
得分:100
用时:104 ms
内存:6704 KiB

输入文件(1.in

17
3 3
1 9
7 8
4 0
2 6
12 5
3 0
0 10
0 11
0 0
5 3
10 10
6 5
8 0
9 2
8 1
5 0
5 1
7 
<2829398 bytes omitted>

答案文件(1.ans

10
20
0
7
0
123
163
244
999
1671
100930
181216
80898
1402126
60776271
1014605
19212781

用户输出

10
20
0
7
0
123
163
244
999
1671
100930
181216
80898
1402126
60776271
1014605
19212781

系统信息

Exited with return code 0
测试点 #2
Accepted
得分:100
用时:76 ms
内存:6684 KiB

输入文件(2.in

1
464 491
795 867
164 87
803 106
734 583
278 855
600 628
824 780
992 364
778 598
747 423

<1999727 bytes omitted>

答案文件(2.ans

60198435

用户输出

60198435

系统信息

Exited with return code 0
测试点 #3
Accepted
得分:100
用时:107 ms
内存:6572 KiB

输入文件(3.in

1
491 462
33 971
433 904
185 869
103 87
507 127
238 315
994 56
215 73
771 129
430 505
281
<1990927 bytes omitted>

答案文件(3.ans

59997625

用户输出

59997625

系统信息

Exited with return code 0
测试点 #4
Accepted
得分:100
用时:83 ms
内存:7296 KiB

输入文件(4.in

1
500 500
613 369
811 452
954 965
32 666
60 515
235 679
26 708
45 831
470 788
371 261
101
<2193863 bytes omitted>

答案文件(4.ans

66160818

用户输出

66160818

系统信息

Exited with return code 0