# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1247553 | AHOKA | 항공 노선도 (JOI18_airline) | C++20 | 0 ms | 0 KiB |
#include <bits/stdc++.h>
#include "Alicelib.h"
#pragma GCC target("sse4")
#pragma GCC optimize("O3")
#pragma GCC optimize("unroll-loops")
using namespace std;
#define threesum cin.tie(NULL); cout.tie(NULL); ios_base::sync_with_stdio(false)
#define all(a) a.begin(), a.end()
#define F first
#define S second
#define int long long
#define pii pair<int, int>
#define ppp pair<int, pii>
#define mid ((l + r) >> 1)
#define lc (id << 1)
#define rc (lc + 1)
const int maxn = 1e3, maxm = 1e4, lg = 10, oo = 1e15;
int n, m, nn;
int id[maxn];
vector<pii> e;
void prep(){
int j = 1;
for (int i = 0; i < maxn;i++){
while (__builtin_popcount(j) <= 1)
j++;
id[i] = j;
}
}
void Alice(int N, int M, int A[], int B[]) {
prep();
n = N;
m = M;
for (int i = 0; i < m; i++)
e.push_back({A[i], B[i]});
// d[nn - 1] = 1;
nn = n + lg + 2 - 1;
e.push_back({nn - 1, nn});
for (int b = 0; b < lg;b++)
e.push_back({n + b, nn});
for (int b = 1; b < lg; b++)
e.push_back({n + b - 1, n + b});
for (int b = 2; b < lg; b++)
e.push_back({n, n + b});
InitG(nn + 1, e.size());
for (int i = 0; i < e.size(); i++)
MakeG(i, e[i].F, e[i].S);
}
#include <bits/stdc++.h>
#include "Alicelib.h"
#pragma GCC target("sse4")
#pragma GCC optimize("O3")
#pragma GCC optimize("unroll-loops")
using namespace std;
#define threesum cin.tie(NULL); cout.tie(NULL); ios_base::sync_with_stdio(false)
#define all(a) a.begin(), a.end()
#define F first
#define S second
#define int long long
#define pii pair<int, int>
#define ppp pair<int, pii>
#define mid ((l + r) >> 1)
#define lc (id << 1)
#define rc (lc + 1)
const int maxn = 1e3, maxm = 1e4, lg = 10, oo = 1e15;
int n, m, nn;
int id[maxn];
vector<pii> e;
void prep(){
int j = 1;
for (int i = 0; i < maxn;i++){
while (__builtin_popcount(j) <= 1)
j++;
id[i] = j;
}
}
void Alice(int N, int M, int A[], int B[]) {
prep();
n = N;
m = M;
for (int i = 0; i < m; i++)
e.push_back({A[i], B[i]});
// d[nn - 1] = 1;
nn = n + lg + 2 - 1;
e.push_back({nn - 1, nn});
for (int b = 0; b < lg;b++)
e.push_back({n + b, nn});
for (int b = 1; b < lg; b++)
e.push_back({n + b - 1, n + b});
for (int b = 2; b < lg; b++)
e.push_back({n, n + b});
InitG(nn + 1, e.size());
for (int i = 0; i < e.size(); i++)
MakeG(i, e[i].F, e[i].S);
}