답안 #943699

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
943699 2024-03-11T18:14:31 Z yeediot Two Transportations (JOI19_transportations) C++17
0 / 100
407 ms 59372 KB
#include "Azer.h"
#include<bits/stdc++.h>
using namespace std;
#define S second
#define F first
namespace {
    const int mxn=5e5+5;
    int cur=0,bit=0,n=0,cnt=0,prv=0,first=0;
    vector<pair<int,int>>adj[mxn];
    vector<int>dis;
    vector<bool>vis;
    pair<int,int>mn={(1<<9)-1,(1<<9)-1};
    void send(int a,int b){
        b--;
        for(;b>=0;b--){
            SendA(a>>b&1);
        }
    }
    void gmn(){
        dis[mn.S]=prv+mn.F;
        prv=dis[mn.S];
        cnt--;
        vis[mn.S]=1;
        for(auto [u,d]:adj[mn.S]){
            dis[u]=min(dis[u],dis[mn.S]+d);
        }
        mn={(1<<9)-1,(1<<9)-1};
        for(int i=0;i<n;i++){
            if(vis[i])continue;
            mn=min(mn,{dis[i]-prv,i});
        }
        if(cnt)send(mn.F,9);
    }
    void gdis(){
        if(cur==(1<<9)-1){
            send(mn.S,11);
            gmn();
        }
        else{
            mn.F=cur;
            first=0;
        }
        cur=bit=0;
    }
    void gid(){
        mn.S=cur;
        gmn();
        cur=bit=0;
        first=1;
    }
}  // namespace
void InitA(int N, int A, std::vector<int> U, std::vector<int> V,std::vector<int> C) {
    for(int i=0;i<A;i++){
        adj[V[i]].push_back({U[i],C[i]});
        adj[U[i]].push_back({V[i],C[i]});
    }
    n=N;
    cnt=n;
    first=1;
    bit=0;
    cur=0;
    prv=0;
    dis=vector<int>(N,1e9);
    vis=vector<bool>(N,0);
    dis[0]=0;
    vis[0]=1;
    cnt--;
    int v=0;
    for(auto [u,d]:adj[v]){
        dis[u]=min(dis[u],dis[v]+d);
    }
    for(int i=0;i<n;i++){
        if(vis[i])continue;
        mn=min(mn,{dis[i],i});
    }
    send(mn.F,9);
}

void ReceiveA(bool x) {
    cur=cur*2+x;
    bit++;
    if(bit==9 and first){
        gdis();
    }
    else if(bit==11){
        gid();
    }
}

std::vector<int> Answer() {
    return dis;
}
#include "Baijan.h"
#include<bits/stdc++.h>
using namespace std;
#define S second
#define F first
namespace {
    const int mxn=5e5+5;
    int cur=0,bit=0,n=0,cnt=0,prv=0,first=0;
    vector<pair<int,int>>adj[mxn];
    vector<int>dis;
    vector<bool>vis;
    pair<int,int>mn={(1<<9)-1,(1<<9)-1};
    void send(int a,int b){
        b--;
        for(;b>=0;b--){
            SendB(a>>b&1);
        }
    }
    void gmn(){
        dis[mn.S]=prv+mn.F;
        prv=dis[mn.S];
        vis[mn.S]=1;
        for(auto [u,d]:adj[mn.S]){
            dis[u]=min(dis[u],dis[mn.S]+d);
        }
        mn={(1<<9)-1,(1<<9)-1};
        for(int i=0;i<n;i++){
            if(vis[i])continue;
            mn=min(mn,{dis[i]-prv,i});
        }
    }
    void gdis(){
        if(mn.F>cur){
            mn.F=cur;
            send((1<<9)-1,9);
            first=0;
        }
        else{
            send(mn.F,9);
            send(mn.S,11);
            gmn();
        }
        cur=bit=0;
    }
    void gid(){
        mn.S=cur;
        gmn();
        cur=bit=0;
        first=1;
    }
}  // namespace
void InitB(int N, int B, std::vector<int> U, std::vector<int> V,std::vector<int> C) {
    for(int i=0;i<B;i++){
        adj[V[i]].push_back({U[i],C[i]});
        adj[U[i]].push_back({V[i],C[i]});
    }
    n=N;
    first=1;
    bit=0;
    cur=0;
    prv=0;
    dis=vector<int>(N,1e9);
    vis=vector<bool>(N,0);
    dis[0]=0;
    vis[0]=1;
    int v=0;
    for(auto [u,d]:adj[v]){
        dis[u]=min(dis[u],dis[v]+d);
    }
    for(int i=0;i<n;i++){
        if(vis[i])continue;
        mn=min(mn,{dis[i],i});
    }
}
void ReceiveB(bool x) {
    cur=cur*2+x;
    bit++;
    if(bit==9 and first){
        gdis();
    }
    else if(bit==11){
        gid();
    }
}

Compilation message

Baijan.cpp:8:25: warning: '{anonymous}::cnt' defined but not used [-Wunused-variable]
    8 |     int cur=0,bit=0,n=0,cnt=0,prv=0,first=0;
      |                         ^~~
# 결과 실행 시간 메모리 Grader output
1 Correct 354 ms 24272 KB Output is correct
2 Runtime error 194 ms 12172 KB Execution killed with signal 13
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 197 ms 12364 KB Execution killed with signal 13
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 366 ms 24328 KB Output is correct
2 Runtime error 195 ms 12164 KB Execution killed with signal 13
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 173 ms 24284 KB Output is correct
2 Correct 148 ms 24256 KB Output is correct
3 Correct 214 ms 36828 KB Output is correct
4 Correct 122 ms 24216 KB Output is correct
5 Correct 205 ms 33444 KB Output is correct
6 Correct 138 ms 24216 KB Output is correct
7 Correct 186 ms 24328 KB Output is correct
8 Correct 165 ms 24216 KB Output is correct
9 Correct 255 ms 41604 KB Output is correct
10 Correct 245 ms 41984 KB Output is correct
11 Correct 407 ms 59372 KB Output is correct
12 Correct 282 ms 54348 KB Output is correct
13 Correct 147 ms 24288 KB Output is correct
14 Runtime error 170 ms 12164 KB Execution killed with signal 13
15 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 173 ms 24284 KB Output is correct
2 Correct 148 ms 24256 KB Output is correct
3 Correct 214 ms 36828 KB Output is correct
4 Correct 122 ms 24216 KB Output is correct
5 Correct 205 ms 33444 KB Output is correct
6 Correct 138 ms 24216 KB Output is correct
7 Correct 186 ms 24328 KB Output is correct
8 Correct 165 ms 24216 KB Output is correct
9 Correct 255 ms 41604 KB Output is correct
10 Correct 245 ms 41984 KB Output is correct
11 Correct 407 ms 59372 KB Output is correct
12 Correct 282 ms 54348 KB Output is correct
13 Correct 147 ms 24288 KB Output is correct
14 Runtime error 170 ms 12164 KB Execution killed with signal 13
15 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 173 ms 24284 KB Output is correct
2 Correct 148 ms 24256 KB Output is correct
3 Correct 214 ms 36828 KB Output is correct
4 Correct 122 ms 24216 KB Output is correct
5 Correct 205 ms 33444 KB Output is correct
6 Correct 138 ms 24216 KB Output is correct
7 Correct 186 ms 24328 KB Output is correct
8 Correct 165 ms 24216 KB Output is correct
9 Correct 255 ms 41604 KB Output is correct
10 Correct 245 ms 41984 KB Output is correct
11 Correct 407 ms 59372 KB Output is correct
12 Correct 282 ms 54348 KB Output is correct
13 Correct 147 ms 24288 KB Output is correct
14 Runtime error 170 ms 12164 KB Execution killed with signal 13
15 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 354 ms 24272 KB Output is correct
2 Runtime error 194 ms 12172 KB Execution killed with signal 13
3 Halted 0 ms 0 KB -