QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#860020 | #9678. 网友小 Z 的树 | lfxxx | 0 | 0ms | 0kb | C++17 | 1.6kb | 2025-01-18 09:30:43 | 2025-01-18 09:30:44 |
answer
#include "diameter.h"
#include <bits/stdc++.h>
using namespace std;
#define pii pair<int, int>
constexpr int inf = 1e9;
int d[10][10][10];
pii find(vector<int>v)
{
if (v.size() == 1) return pii(v[0], v[0]);
if (v.size() == 2) return pii(v[0], v[1]);
if (v.size() == 3) {
if (in(v[0], v[1], v[2])) return pii(v[1], v[2]);
if (in(v[1], v[0], v[2])) return pii(v[0], v[2]);
return pii(v[0], v[1]);
}
for (int i = 0; i < v.size(); ++i) {
for (int j = i + 1; j < v.size(); ++j) {
for (int k = j + 1; k < v.size(); ++k) {
d[i][j][k] = query(v[i], v[j], v[k]);
d[i][k][j] = d[i][j][k];
d[j][i][k] = d[i][j][k];
d[j][k][i] = d[i][j][k];
d[k][i][j] = d[i][j][k];
d[k][j][i] = d[i][j][k];
}
}
}
pair<int, pii>mx;
for (int i = 0; i < v.size(); ++i) {
for (int j = i + 1; j < v.size(); ++j) {
int lst = -1, mn = inf;
bool is4 = 1;
for (int k = 0; k < v.size(); ++k) {
if (k != i && k != j) {
mn = min(mn, d[i][j][k]);
is4 &= (d[i][j][k] == 4);
lst = k;
}
}
if (is4) {
mx = max(mx, make_pair(4, pii(v[i], v[lst])));
}
mx = max(mx, make_pair(mn, pii(v[i], v[j])));
}
}
return mx.second;
}
pii find_diameter(int subid, int n) {
if (n <= 5) {
vector<int>v;
for (int i = 1; i <= n; ++i) v.emplace_back(i);
return find(v);
}
vector<int>v;
for (int i = 1; i <= n; ++i) v.emplace_back(i);
auto [x, y] = find(v);
for (int i = 6; i <= n; i += 3) {
v.resize(5);
v[0] = x, v[1] = y, v[2] = i, v[3] = i + 1, v[4] = i + 2;
while (v.back() > n) v.pop_back();
auto [x, y] = find(v);
}
return pii(x, y);
}
Details
Tip: Click on the bar to expand more detailed information
Subtask #1:
score: 0
Runtime Error
Test #1:
score: 0
Runtime Error
input:
1 100 25 1 3 2 18 3 8 4 18 5 14 6 22 7 18 8 10 9 11 10 12 11 25 12 16 13 11 14 17 15 17 16 25 17 2 18 20 19 18 20 12 21 1 22 17 23 14 24 1 50 1 37 2 27 3 10 4 25 5 16 6 17 7 10 8 36 9 16 10 6 11 48 12 2 13 28 14 30 15 10 16 44 17 31 18 1 19 6 20 7 21 30 22 42 23 45 24 23 25 27 26 39 27 45 28 48 29 4...
output:
result:
Subtask #2:
score: 0
Skipped
Dependency #1:
0%
Subtask #3:
score: 0
Skipped
Dependency #2:
0%
Subtask #4:
score: 0
Skipped
Dependency #3:
0%
Subtask #5:
score: 0
Skipped
Dependency #4:
0%
Subtask #6:
score: 0
Skipped
Dependency #5:
0%
Subtask #7:
score: 0
Skipped
Dependency #6:
0%
Subtask #8:
score: 0
Skipped
Dependency #7:
0%
Subtask #9:
score: 0
Skipped
Dependency #8:
0%
Subtask #10:
score: 0
Skipped
Dependency #9:
0%
Subtask #11:
score: 0
Skipped
Dependency #1:
0%