AC代码:
#pragma GCC optimize(2) #pragma GCC optimize(3) #pragma GCC optimize("Ofast") #include <iostream> #include <queue> #include <cstdio> #include <cstdlib> #include <algorithm> #include <cmath> #include <cstring> #include <string> #include <cctype> #include <map> #include <vector> #include <set> #include <stack> #include <numeric> #include <iomanip> #include <functional> using namespace std; #define lowbit(x) ((x) & -(x)) #define IOS1 ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr); #define IOS2 ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); typedef vector<int> vi; typedef vector<long long> vll; typedef vector<char> vc; template<class T> T gcd(T a, T b) { return b ? gcd(b, a % b) : a; } template<class T> T lcm(T a, T b) { return a / gcd(a, b) * b; } const int INF = 0x3f3f3f3f; const int mod = 1000000007; void solve() { int n; cin >> n; vector<vector<pair<int, int>>> a(n); for (int i = 0; i < n - 1; i++) { int u, v; cin >> u >> v; u--; v--; a[u].emplace_back(v, i); a[v].emplace_back(u, i); } vector<int> ans(n - 1); for (int i = 0; i < n; i++) { if (a[i].size() > 2) { cout << "-1\n"; return; } } int x = 0; while (a[x].size() == 2) { x++; } ans[a[x][0].second] = 2; int y = a[x][0].first; int cur = 2; while (a[y].size() == 2) { int t = x == a[y][0].first; cur = 5 - cur; ans[a[y][t].second] = cur; x = a[y][t].first; swap(x, y); } for (int i = 0; i < n - 1; i++) { cout << ans[i] << " \n"[i == n - 2]; } } int main() { IOS1; //IOS2; int __t = 1; cin >> __t; for (int _t = 1; _t <= __t; _t++) { solve(); } return 0; } /* */
相关文章
- 11-12Not Assigning(1400)
- 11-12Assigning Workstations
- 11-12SAP ABAP loop at Assigning
- 11-12Assigning to 'id
_Nullable' from incompatible type 'InfchangeVC *const __strong' - 11-12Not Assigning
- 11-12The difference between creating a string object constructor and assigning it directly
- 11-12iOS Assigning to 'id
' from incompatible type 'BViewController *__strong'