QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#720092 | #67. Two Transportations | int_R | 0 | 2ms | 6304kb | C++20 | 3.2kb | 2024-11-07 10:36:46 | 2024-11-07 10:36:54 |
Azer
#include "Azer.h"
#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<vector>
#define ll long long
using namespace std;
typedef vector<int> V;
namespace {
const int MAXN=2e3+10,MAXM=1e6+10;
int to[MAXM],nxt[MAXM],head[MAXN],val[MAXM],tot;
int o=1,n,r=11,tmp,dis[MAXN],pre,cnt,MIN,pos;bool vis[MAXN];
inline void add(int x,int y,int z)
{to[++tot]=y,nxt[tot]=head[x],val[head[x]=tot]=z;}
inline void upd(int x,int D)
{
++cnt,pre=dis[x]=D,vis[x]=true;
for(int i=head[x];i;i=nxt[i])
{int y=to[i];dis[y]=min(dis[y],dis[x]+val[i]);}
}
inline void find()
{
MIN=1e9;for(int i=0;i<n;++i)
if(!vis[i]&&dis[i]<MIN)
MIN=dis[i],pos=i;
}
inline void Send(int k,int x)
{for(int i=k-1;~i;--i) SendA((x>>i)&1);}
inline void send(bool flag)
{find();flag?Send(9,min(MIN-pre,511)):Send(11,pos);}
inline void dij()
{find();upd(pos,MIN);}
}
void InitA(int n,int m,V x,V y,V z)
{
::n=n,o=1;
for(int i=1;i<n;++i) dis[i]=(1<<20)-1;
for(int i=0;i<m;++i) add(x[i],y[i],z[i]),add(y[i],x[i],z[i]);
Send(11,1564);
}
void ReceiveA(bool f)
{
tmp=tmp<<1|f;if(--r) return ;
if(o==1)
{
// cout<<'A'<<o<<' '<<tmp<<'\n';
int x=tmp;tmp=0,upd(x,pre);
if(cnt==n) return ;
send(1),o=3,r=9;
}
else if(o==2)
{
// cout<<'A'<<o<<' '<<tmp<<'\n';
int D=tmp;tmp=0;find(),send(1);
if(D<=MIN-pre) pre+=D,o=1,r=11;
else upd(pos,MIN),Send(11,pos),o=2,r=9;
}
else
{
// cout<<'A'<<o<<' '<<tmp<<'\n';
int D=tmp;tmp=0;find();
if(D<MIN-pre) pre+=D,o=1,r=11;
else upd(pos,MIN),Send(11,pos),o=2,r=9;
}
}
V Answer(){V ans(n);for(int i=0;i<n;++i) ans[i]=dis[i];return ans;}
Baijan
#include "Baijan.h"
#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<vector>
#define ll long long
using namespace std;
typedef vector<int> V;
namespace {
const int MAXN=2e3+10,MAXM=5e5+10;
int to[MAXM],nxt[MAXM],head[MAXN],val[MAXM],tot;
int o=2,n,r=9,tmp,dis[MAXN],pre,cnt,MIN,pos;bool vis[MAXN];
inline void add(int x,int y,int z)
{to[++tot]=y,nxt[tot]=head[x],val[head[x]=tot]=z;}
inline void upd(int x,int D)
{
++cnt,pre=dis[x]=D,vis[x]=true;
for(int i=head[x];i;i=nxt[i])
{int y=to[i];dis[y]=min(dis[y],dis[x]+val[i]);}
}
inline void find()
{
MIN=1e9;for(int i=0;i<n;++i)
if(!vis[i]&&dis[i]<MIN)
MIN=dis[i],pos=i;
}
inline void Send(int k,int x)
{for(int i=k-1;~i;--i) SendB((x>>i)&1);}
inline void send(bool flag)
{find();flag?Send(9,min(MIN-pre,511)):Send(11,pos);}
inline void dij()
{find();upd(pos,MIN);}
}
void InitB(int n,int m,V x,V y,V z)
{
::n=n,o=2;
for(int i=1;i<n;++i) dis[i]=(1<<20)-1;
for(int i=0;i<m;++i) add(x[i],y[i],z[i]),add(y[i],x[i],z[i]);
// upd(0,0),Send(11,0);
}
void ReceiveB(bool f)
{
tmp=tmp<<1|f;if(--r) return ;
if(o==1)
{
// cout<<'B'<<o<<' '<<tmp<<'\n';
int x=tmp;tmp=0,upd(x,pre);
if(cnt==n) return ;
send(1),o=3,r=9;
}
else if(o==2)
{
// cout<<'B'<<o<<' '<<tmp<<'\n';
int D=tmp;tmp=0;find(),send(1);
if(D<=MIN-pre) pre+=D,o=1,r=11;
else upd(pos,MIN),Send(11,pos),o=2,r=9;
}
else
{
// cout<<'B'<<o<<' '<<tmp<<'\n';
int D=tmp;tmp=0;find();
if(D<MIN-pre) pre+=D,o=1,r=11;
else upd(pos,MIN),Send(11,pos),o=2,r=9;
}
}
Details
Tip: Click on the bar to expand more detailed information
Subtask #1:
score: 0
Wrong Answer
Test #1:
score: 0
Wrong Answer
time: 1ms
memory: 5944kb
input:
1 1 0 0 0 0 1 1 1 0 0 -1 1 1 1 1 1 1 1 1 1 -1 -1 -1
output:
-1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 1 0 1 1 0 1 0 0 -1 -1
input:
output:
0 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 10...
result:
wrong answer 2nd lines differ - expected: '2417', found: '1048575'
Subtask #2:
score: 0
Wrong Answer
Test #7:
score: 8
Accepted
time: 1ms
memory: 3696kb
input:
1 1 0 0 0 0 1 1 1 0 0 -1 -1 -1
output:
-1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 -1
input:
output:
0
result:
ok single line: '0'
Test #8:
score: 0
Wrong Answer
time: 1ms
memory: 5920kb
input:
1 1 0 0 0 0 1 1 1 0 0 -1 1 1 1 1 1 1 1 1 1 -1 -1 -1
output:
-1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 1 1 0 1 0 1 0 1 -1 -1
input:
output:
0 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 10...
result:
wrong answer 2nd lines differ - expected: '128264', found: '1048575'
Subtask #3:
score: 0
Wrong Answer
Test #14:
score: 0
Wrong Answer
time: 1ms
memory: 6204kb
input:
1 1 0 0 0 0 1 1 1 0 0 -1 1 0 0 1 1 1 0 0 1 -1 -1 -1
output:
-1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 1 1 0 1 0 0 1 0 1 -1 -1
input:
output:
0 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 392 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 104857...
result:
wrong answer 2nd lines differ - expected: '3328', found: '1048575'
Subtask #4:
score: 0
Wrong Answer
Test #24:
score: 0
Wrong Answer
time: 0ms
memory: 5956kb
input:
1 1 0 0 0 0 1 1 1 0 0 -1 1 1 1 1 1 1 1 1 1 -1 -1 -1
output:
-1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 1 0 0 1 0 0 1 1 -1 -1
input:
output:
0 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 10...
result:
wrong answer 2nd lines differ - expected: '1881', found: '1048575'
Subtask #5:
score: 0
Wrong Answer
Test #38:
score: 0
Wrong Answer
time: 1ms
memory: 5880kb
input:
1 1 0 0 0 0 1 1 1 0 0 -1 0 0 1 0 1 1 1 1 0 -1 -1 -1
output:
-1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 1 1 1 1 1 1 1 1 1 -1 -1
input:
output:
0 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 10...
result:
wrong answer 2nd lines differ - expected: '3467', found: '1048575'
Subtask #6:
score: 0
Wrong Answer
Test #51:
score: 0
Wrong Answer
time: 0ms
memory: 5900kb
input:
1 1 0 0 0 0 1 1 1 0 0 -1 1 1 1 1 1 1 1 1 1 -1 -1 -1
output:
-1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 1 0 1 1 0 0 0 0 -1 -1
input:
output:
0 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 10...
result:
wrong answer 2nd lines differ - expected: '4745', found: '1048575'
Subtask #7:
score: 0
Wrong Answer
Test #64:
score: 0
Wrong Answer
time: 2ms
memory: 6304kb
input:
1 1 0 0 0 0 1 1 1 0 0 -1 1 1 1 1 1 0 0 0 0 -1 -1 -1
output:
-1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 1 1 1 1 1 0 0 1 1 -1 -1
input:
output:
0 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 1048575 10...
result:
wrong answer 2nd lines differ - expected: '25855', found: '1048575'