제출 #1036001

#제출 시각아이디문제언어결과실행 시간메모리
1036001boyliguanhanTwo Transportations (JOI19_transportations)C++17
14 / 100
312 ms28364 KiB
#include "Azer.h" #include <bits/stdc++.h> using namespace std; int casef=0,NN_; vector<int>Ua,Va,Ca; void sendnum2(int n,int b){ for(int i=b;i--;) SendA(n>>i&1); } void sendedges(){ for(int i=0;i<Ua.size();i++){ sendnum2(Ua[i],11); sendnum2(Va[i],11); sendnum2(Ca[i],9); } sendnum2(0,31); } void InitA(int N, int A, std::vector<int> U, std::vector<int> V, std::vector<int> C) { NN_=N; Ua=U; Va=V; Ca=C; if(A<=500)SendA(0),sendedges(); else SendA(1); casef=A>500; } vector<int>bits; void ReceiveA(bool x) { bits.push_back(x); } std::vector<int> Answer() { if(casef) { vector<vector<pair<int,int>>>adj(NN_); int C=bits.size(); for(int i=0;i<C/31;i++){ int U=0,V=0,D=0; for(int j=0;j<11;j++) U=U*2+bits[i*31+j]; for(int j=11;j<22;j++) V=V*2+bits[i*31+j]; for(int j=22;j<31;j++) D=D*2+bits[i*31+j]; adj[U].push_back({V,D}); adj[V].push_back({U,D}); } for(int i=0;i<Ua.size();i++){ adj[Ua[i]].push_back({Va[i],Ca[i]}); adj[Va[i]].push_back({Ua[i],Ca[i]}); } vector<int>dist(NN_,1e9); priority_queue<pair<int,int>,vector<pair<int,int>>,greater<>>pq; dist[0]=0; pq.push({0,0}); while(pq.size()){ auto[d,x]=pq.top(); pq.pop(); if(dist[x]<d)continue; for(auto [v,w]:adj[x]) if(dist[v]>w+d) pq.push({dist[v]=w+d,v}); } return dist; } std::vector<int> ans(NN_); for(int i=0;i<bits.size();i++) ans[i/20]=ans[i/20]<<1|bits[i]; return ans; }
#include "Baijan.h" #include <vector> #include<bits/stdc++.h> using namespace std; vector<pair<int,int>> adj[2010]; int dist[2010],N_; vector<int>S_bai,T_bai,D_bai; void InitB(int N, int B, std::vector<int> S, std::vector<int> T, std::vector<int> D) { N_=N; for(int i=0;i<B;i++) adj[S[i]].push_back({T[i],D[i]}), adj[T[i]].push_back({S[i],D[i]}); S_bai=S; T_bai=T; D_bai=D; } int fsen; void sendnum(int n,int b){ for(int i=b;i--;) SendB(n>>i&1); } vector<int>bits2; void rdedges(){ int C=bits2.size()-31; for(int i=0;i*31<C;i++){ int U=0,V=0,D=0; for(int j=0;j<11;j++) U=U*2+bits2[i*31+j]; for(int j=11;j<22;j++) V=V*2+bits2[i*31+j]; for(int j=22;j<31;j++) D=D*2+bits2[i*31+j]; adj[U].push_back({V,D}); adj[V].push_back({U,D}); } } void djik(){ priority_queue<pair<int,int>,vector<pair<int,int>>,greater<>>pq; memset(dist,7,sizeof dist); dist[0]=0; pq.push({0,0}); while(pq.size()){ auto[d,x]=pq.top(); pq.pop(); if(dist[x]<d)continue; for(auto [v,w]:adj[x]) if(dist[v]>w+d) pq.push({dist[v]=w+d,v}); } for(int i=0;i<N_;i++) sendnum(dist[i],20); } void ReceiveB(bool y) { if(!fsen) { if(y) for(int i=0;i<S_bai.size();i++){ sendnum(S_bai[i],11); sendnum(T_bai[i],11); sendnum(D_bai[i],9); } fsen=1; } else { bits2.push_back(y); if(bits2.size()>=31&&!*max_element(bits2.rbegin(),bits2.rbegin()+31)) rdedges(),djik(); } }

컴파일 시 표준 에러 (stderr) 메시지

Azer.cpp: In function 'void sendedges()':
Azer.cpp:13:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   13 |         for(int i=0;i<Ua.size();i++){
      |                     ~^~~~~~~~~~
Azer.cpp: In function 'std::vector<int> Answer()':
Azer.cpp:49:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   49 |         for(int i=0;i<Ua.size();i++){
      |                     ~^~~~~~~~~~
Azer.cpp:68:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   68 |     for(int i=0;i<bits.size();i++)
      |                 ~^~~~~~~~~~~~

Baijan.cpp: In function 'void ReceiveB(bool)':
Baijan.cpp:57:26: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   57 |             for(int i=0;i<S_bai.size();i++){
      |                         ~^~~~~~~~~~~~~
#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...