Submission #4419099
Source Code Expand
#include <iostream> #include <algorithm> #include <cstring> #include <cstdio> typedef long long ll; const int maxn = 4e5 + 7; using namespace std; int n, q, cnt; int d[maxn]; int fa[maxn]; struct edge { int x, y, z; inline int operator < (const edge &a) const { return z < a.z; } } e[maxn]; inline int read() { int X = 0; char ch = getchar(); while (ch < '0' || ch > '9') ch = getchar(); while (ch >= '0' && ch <= '9') X = X * 10 + ch - '0', ch = getchar(); return X; } int find(int x) { return fa[x] == x ? x : fa[x] = find(fa[x]); } inline ll kruskal() { ll ans = 0; sort(e + 1, e + cnt + 1); for (int i = 1; i <= cnt; i++) { int x = find(e[i].x), y = find(e[i].y); if (x != y) fa[x] = y, ans += e[i].z; } return ans; } int main(void) { cin >> n >> q; for (int i = 0; i < n; i++) fa[i] = i, d[i] = 2e9; while (q--) { int a = read(), b = read(), c = read(); e[++cnt] = (edge){a, b, c}; d[a] = min(d[a], c + 1); d[b] = min(d[b], c + 2); } int r = 0; for (int i = 1; i < n; i++) if (d[i] < d[r]) r = i; for (int i = r + 1; i < r + n; i++) d[i % n] = min(d[i % n], d[(i - 1) % n] + 2); for (int i = 0; i < n; i++) e[++cnt] = (edge){i, (i + 1) % n, d[i]}; cout << kruskal() << endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | G - Zigzag MST |
User | luogu_bot3 |
Language | C++ (GCC 5.4.1) |
Score | 1300 |
Code Size | 1300 Byte |
Status | AC |
Exec Time | 76 ms |
Memory | 10240 KB |
Judge Result
Set Name | sample | all | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 1300 / 1300 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
sample | sample-01.txt, sample-02.txt, sample-03.txt |
all | sample-01.txt, sample-02.txt, sample-03.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, 01-12.txt, 01-13.txt, 01-14.txt, 01-15.txt, 01-16.txt, 01-17.txt, 01-18.txt, 01-19.txt, 01-20.txt, 01-21.txt, 01-22.txt, 01-23.txt, 01-24.txt, 01-25.txt, 01-26.txt, 01-27.txt, 01-28.txt, 01-29.txt, 01-30.txt, sample-01.txt, sample-02.txt, sample-03.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
01-01.txt | AC | 1 ms | 2304 KB |
01-02.txt | AC | 40 ms | 6400 KB |
01-03.txt | AC | 72 ms | 7424 KB |
01-04.txt | AC | 21 ms | 9472 KB |
01-05.txt | AC | 14 ms | 8192 KB |
01-06.txt | AC | 17 ms | 8704 KB |
01-07.txt | AC | 16 ms | 7552 KB |
01-08.txt | AC | 16 ms | 7296 KB |
01-09.txt | AC | 21 ms | 7168 KB |
01-10.txt | AC | 47 ms | 7168 KB |
01-11.txt | AC | 61 ms | 6784 KB |
01-12.txt | AC | 76 ms | 7168 KB |
01-13.txt | AC | 75 ms | 7168 KB |
01-14.txt | AC | 73 ms | 7168 KB |
01-15.txt | AC | 75 ms | 7168 KB |
01-16.txt | AC | 72 ms | 7168 KB |
01-17.txt | AC | 75 ms | 7168 KB |
01-18.txt | AC | 53 ms | 10240 KB |
01-19.txt | AC | 16 ms | 7552 KB |
01-20.txt | AC | 19 ms | 7168 KB |
01-21.txt | AC | 32 ms | 7168 KB |
01-22.txt | AC | 58 ms | 7168 KB |
01-23.txt | AC | 59 ms | 7168 KB |
01-24.txt | AC | 16 ms | 10240 KB |
01-25.txt | AC | 73 ms | 10240 KB |
01-26.txt | AC | 21 ms | 9856 KB |
01-27.txt | AC | 23 ms | 8704 KB |
01-28.txt | AC | 48 ms | 8704 KB |
01-29.txt | AC | 60 ms | 7680 KB |
01-30.txt | AC | 68 ms | 8704 KB |
sample-01.txt | AC | 1 ms | 2304 KB |
sample-02.txt | AC | 1 ms | 2304 KB |
sample-03.txt | AC | 1 ms | 2304 KB |