제출 #1293822

#제출 시각아이디문제언어결과실행 시간메모리
1293822123123123세계 지도 (IOI25_worldmap)C++20
0 / 100
1 ms1084 KiB
#include <bits/stdc++.h> using namespace std; vector<vector<int>> adj; vector<vector<int>> mstAdj; vector<bool> used; vector<int> tour; void DFS(int v) { used[v] = true; tour.push_back(v); for(int to : mstAdj[v]) { if(!used[to]) { DFS(to); tour.push_back(v); } } } std::vector<std::vector<int>> create_map(int N, int M, std::vector<int> A, std::vector<int> B) { int i, j, v, ind, sz, k, val; if(M == 0) { vector <vector<int>> mymap(1, std::vector<int>(1, 1)); return mymap; } adj.assign(N + 1, {}); mstAdj.assign(N + 1, {}); used.assign(N + 1, false); for(i = 0; i < M; i++) { adj[A[i]].push_back(B[i]); adj[B[i]].push_back(A[i]); } vector<bool> visited(N + 1, false); queue<int> q; q.push(1); visited[1] = true; vector<pair<int, int>> mstEdges; while(!q.empty()) { v = q.front(); q.pop(); for(int to : adj[v]) { if(!visited[to]) { visited[to] = true; q.push(to); mstEdges.push_back({v, to}); mstAdj[v].push_back(to); mstAdj[to].push_back(v); } } } DFS(1); val = tour.size(); sz = val * 3; vector <vector <int>> mymap(sz, std::vector<int>(sz, 0)); ind = 0; for(i = 0; i < sz; i++) { if(i % 3 == 0) { for(j = 0; j < sz; j++) { mymap[i][j] = tour[ind]; } ind++; } } for(i = 0; i < sz; i++) { if(i % 3 == 2) { for(j = 0; j < sz; j++) { mymap[i][j] = mymap[i - 2][j]; } } } //for(i = 0; i < tour.size(); i++) //{ //cout << tour[i] << " "; //} for(i = 0; i < sz; i++) { if(i % 3 == 1) { k = 0; for(j = 0; j < adj[mymap[i - 1][j]].size() * 2; j++) { if(j % 2 == 0) mymap[i][j] = mymap[i - 1][j]; else { mymap[i][j] = adj[mymap[i - 1][j]][k]; k++; } } } } for(i = 0; i < sz; i++) { for(j = 0; j < sz; j++) { if(mymap[i][j] == 0) mymap[i][j] = mymap[i - 1][j]; } } return mymap; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...