# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
733752 | myrcella | Flights (JOI22_flights) | C++17 | 14 ms | 1004 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
//by szh
#include<bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define pii pair<int,int>
#define pll pair<long long,long long>
#define pb push_back
#define debug(x) cerr<<#x<<"="<<x<<endl
#define pq priority_queue
#define inf 0x3f
#define rep(i,a,b) for (int i=a;i<(b);i++)
#define MP make_pair
#define SZ(x) (int(x.size()))
#define ll long long
#define mod 1000000007
#define ALL(x) x.begin(),x.end()
void inc(int &a,int b) {a=(a+b)%mod;}
void dec(int &a,int b) {a=(a-b+mod)%mod;}
int lowbit(int x) {return x&(-x);}
ll p0w(ll base,ll p) {ll ret=1;while(p>0){if (p%2ll==1ll) ret=ret*base%mod;base=base*base%mod;p/=2ll;}return ret;}
#include "Ali.h"
const int maxn = 10010;
int n;
vector <int> edge[maxn];
int dis[maxn];
pq <pii,vector<pii>,greater<pii>> q;
void Init(int N, std::vector<int> U, std::vector<int> V) {
n = N;
rep(i,0,N) {
SetID(i,i);
while (!edge[i].empty()) edge[i].pop_back();
}
rep(i,0,N-1) edge[U[i]].pb(V[i]),edge[V[i]].pb(U[i]);
}
void dijkstra(int u) {
memset(dis,inf,sizeof(dis));
dis[u] = 0;
q.push({0,u});
while (!q.empty()) {
int u = q.top().se, d = q.top().fi;
q.pop();
if (dis[u]!=d) continue;
for (int v:edge[u]) if (dis[v] > d+1) dis[v] = d+1, q.push({d+1,v});
}
return;
}
std::string SendA(std::string S) {
int x=0,y=0;
rep(i,0,10) if (S[9-i]=='1') x += (1<<i);
rep(i,0,10) if (S[19-i]=='1') y += (1<<i);
string ret = "";
for (int u = x;u<n;u+=1024) {
dijkstra(u);
for (int v=y;v<n;v+=1024) {
string tmp = "";
rep(i,0,14) {
if ((dis[v]>>i)&1) tmp += '1';
else tmp += '0';
}
reverse(ALL(tmp));
ret += tmp;
}
}
return ret;
}
//by szh
#include<bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define pii pair<int,int>
#define pll pair<long long,long long>
#define pb push_back
#define debug(x) cerr<<#x<<"="<<x<<endl
#define pq priority_queue
#define inf 0x3f
#define rep(i,a,b) for (int i=a;i<(b);i++)
#define MP make_pair
#define SZ(x) (int(x.size()))
#define ll long long
#define mod 1000000007
#define ALL(x) x.begin(),x.end()
void inc(int &a,int b) {a=(a+b)%mod;}
void dec(int &a,int b) {a=(a-b+mod)%mod;}
int lowbit(int x) {return x&(-x);}
ll p0w(ll base,ll p) {ll ret=1;while(p>0){if (p%2ll==1ll) ret=ret*base%mod;base=base*base%mod;p/=2ll;}return ret;}
#include "Benjamin.h"
int nn;
int st,ed;
std::string SendB(int N, int X, int Y) {
string tmp = "";
st = X, ed = Y;
nn = N;
X %= 1024, Y %= 1024;
for (int i=9;i>=0;i--) if ((X>>i)&1) tmp += '1';else tmp+='0';
for (int i=9;i>=0;i--) if ((Y>>i)&1) tmp += '1';else tmp+='0';
return tmp;
}
int Answer(std::string T) {
int cnt = 0;
for (int u=st%1024;u<nn;u+=1024)
for (int v=ed%1024;v<nn;v+=1024) {
if (u==st and v==ed) break;
else cnt++;
}
int ret = 0;
rep(i,0,14) if (T[cnt*14+13-i]=='1') ret += (1<<i);
return ret;
}
컴파일 시 표준 에러 (stderr) 메시지
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |