제출 #1306128

#제출 시각아이디문제언어결과실행 시간메모리
1306128nicolo_010항공 노선도 (JOI18_airline)C++20
22 / 100
207 ms50224 KiB
#include "Alicelib.h" #include <bits/stdc++.h> using namespace std; void Alice( int n, int m, int A[], int B[] ){ vector<vector<int>> edges(m); for (int i=0; i<m; i++) { edges[i] = {A[i], B[i]}; } for (int i=n; i<n+50; i++) { for (int j=i+1; j<n+50; j++) { edges.push_back({i, j}); } } for (int i=n; i<n+50; i++) { if (i-n >= n) break; for (int j=i-n; j < n; j++) { edges.push_back({j, i}); } } m = edges.size(); InitG(n+50, m); for (int i=0; i<m; i++) { MakeG(i, edges[i][0], edges[i][1]); } }
#include "Boblib.h" #include <bits/stdc++.h> using namespace std; vector<vector<int>> adj; bool cmp(int a, int b) { return adj[a].size()>adj[b].size(); } void Bob( int v, int u, int C[], int D[] ){ adj.assign(v, {}); for (int i=0; i<u; i++) { int a = C[i]; int b = D[i]; adj[a].push_back(b); adj[b].push_back(a); } vector<int> a(v); for (int i=0; i<v; i++) { a[i] = i; } sort(a.begin(), a.end(), cmp); int n = v-50; vector<int> id(v, 0); vector<bool> vis(v, false); for (int i=0; i<50; i++) { vis[a[i]] = true; } for (int i=0; i<n; i++) { for (auto x : adj[a[i]]) { if (!vis[x]) id[x]++; } } map<vector<int>, int> mp; vector<vector<int>> edges; for (int i=0; i<v; i++) { if (vis[i]) continue; for (auto x : adj[i]) { if (vis[x]) continue; if (mp.count({id[i]-01, id[x]-1}) || mp.count({id[x]-1, id[i]-1})) continue; edges.push_back({id[i]-1, id[x]-1}); mp[{id[i]-1, id[x]-1}] = 1; } } int m = edges.size(); InitMap(n, m); for (int i=0; i<m; i++) { MakeMap(edges[i][0], edges[i][1]); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...