QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#566085 | #9319. Bull Farm | qdsdsy | TL | 4932ms | 43252kb | C++14 | 3.4kb | 2024-09-15 23:00:02 | 2024-09-15 23:00:03 |
Judging History
answer
#include<cstdio>
#include<queue>
#include<algorithm>
using namespace std;
#define MAXN 2010
#define MAXQ 1000010
#define re
#define il inline
int n,l,q;
int t[MAXN][MAXN];
struct node{
int a,b,c,id;
friend bool operator < (node a,node b){
return a.c<b.c;
}
} op[MAXQ];
char ans[MAXQ];
struct edge{
int v,nxt;
} e1[MAXN*MAXN];
int head[MAXN],cnte=0;
il void ad(int u,int v){
e1[++cnte].v=v;
e1[cnte].nxt=head[u];
head[u]=cnte;
}
bool e[MAXN][MAXN];
int bel[MAXN],belp[MAXN],cnt=0;
il void ade(int u,int v){
if(e[u][v]) return;
if(!bel[u] && !bel[v]){
ad(u,v);
e[u][v]=true;
return;
}
if(bel[u]==bel[v]) return;
if(bel[u]) u=belp[bel[u]];
if(bel[v]) v=belp[bel[v]];
if(!e[u][v]) ad(u,v);
if(!e[v][u]) ad(v,u);
e[u][v]=e[v][u]=true;
}
bool vis[MAXN];
int typ[MAXN];
char s[MAXN*2];
queue <int> qu;
il bool bfs(re int s,re int t){
if(s==t) return true;
for(re int i=1;i<=n;i++)
vis[i]=false;
while(!qu.empty()) qu.pop();
qu.push(s);
vis[s]=true;
while(!qu.empty()){
re int u=qu.front();
if(e[u][t]) return true;
qu.pop();
for(re int i=head[u];i;i=e1[i].nxt){
re int v=e1[i].v;
if(v==t) return true;
if(vis[v]) continue;
vis[v]=true;
qu.push(v);
}
}
return false;
}
void solve(){
scanf("%d%d%d",&n,&l,&q);
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
e[i][j]=false;
for(int i=1;i<=n;i++){
e[i][i]=true;
bel[i]=head[i]=0;
}
cnte=0;
while(cnt) belp[cnt--]=0;
for(int i=1;i<=l;i++){
scanf("%s",s+1);
for(int j=1;j<=n;j++)
t[i][j]=(s[2*j-1]-'0')*50+(s[2*j]-'0');
}
for(re int i=1;i<=q;i++){
scanf("%s",s+1);
op[i].a=(s[1]-'0')*50+(s[2]-'0');
op[i].b=(s[3]-'0')*50+(s[4]-'0');
op[i].c=(s[5]-'0')*50+(s[6]-'0');
op[i].id=i;
ans[i]=0;
}
sort(op+1,op+1+q);
re int now=0;
for(re int i=1;i<=q;i++){
re int a=op[i].a,b=op[i].b,c=op[i].c,id=op[i].id;
while(now<c){
now++;
typ[now]=0;
for(re int j=1;j<=n;j++)
vis[j]=false;
for(re int j=1;j<=n;j++){
if(!vis[t[now][j]]) vis[t[now][j]]=true;
else {
if(!typ[now]) typ[now]=t[now][j];
else typ[now]=-1;
}
}
if(typ[now]==-1) continue;
if(typ[now]){
re int id1=0,id2=0,id3=0;
for(re int j=1;j<=n;j++) vis[j]=false;
for(re int j=1;j<=n;j++){
if(t[now][j]==typ[now])
if(!id1) id1=j;
else id2=j;
vis[t[now][j]]=true;
}
for(re int j=1;j<=n;j++)
if(!vis[j]) id3=j;
ade(id1,id3);
ade(id2,id3);
}else {
for(re int j=1;j<=n;j++)
vis[j]=false;
for(re int j=1;j<=n;j++){
if(!vis[j]){
re int nowj=j;
if(!bel[j]){
bel[j]=++cnt;
belp[cnt]=j;
}
do{
vis[nowj]=true;
if(nowj!=j){
if(bel[nowj]){
if(bel[nowj]!=bel[j]){
re int u=belp[bel[nowj]],v=j;
if(!e[u][v]) ad(u,v);
if(!e[v][u]) ad(v,u);
e[u][v]=e[v][u]=true;
bel[nowj]=bel[j];
}
}else {
bel[nowj]=bel[j];
if(!e[nowj][j]) ad(nowj,j);
if(!e[j][nowj]) ad(j,nowj);
e[nowj][j]=e[j][nowj]=true;
}
}
nowj=t[now][nowj];
} while(nowj!=j);
}
}
}
}
ans[id]=(int)bfs(a,b)+'0';
}
ans[q+1]=0;
printf("%s\n",ans+1);
}
int main()
{
int t;
scanf("%d",&t);
while(t--)
solve();
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 9968kb
input:
2 5 2 4 0305040201 0404040404 030300 020500 050102 020501 6 2 4 030603010601 010203060504 030202 060402 050602 060401
output:
1011 0100
result:
ok 2 lines
Test #2:
score: 0
Accepted
time: 1ms
memory: 10220kb
input:
1 3 3 6 020202 030301 030201 020102 030203 010201 010303 020303 010202
output:
010101
result:
ok single line: '010101'
Test #3:
score: 0
Accepted
time: 84ms
memory: 12076kb
input:
200 10 10 5000 01060:04020305080709 0103070:060204050908 09070503080401060:02 050308010204090:0607 03010502040607080:09 03080109020504060:07 06050:09040302080107 07080305010409060:02 030809010:0204060507 0:060908070201050304 060700 090:03 09080: 070405 010703 0:0100 080601 030600 070206 0:0:09 08040...
output:
011110001101101111111111111111111101111111110111011110110110111011010111111111111111111101111111111110111111110111111111111101111111111110111111111111111111110001100111111111111111111111111011101111111111111111111111111111111111111111011011110100111110111111110111111100111111101110111111111101111110...
result:
ok 200 lines
Test #4:
score: 0
Accepted
time: 1306ms
memory: 28540kb
input:
1 2000 1 1000000 M=:]A@8UAY7W2JJ4KEHIA[HSCQ1ENSC`JXR;F3PJ:_@41P9Z=9HR8P<<:DUXRR9^WOQFL?NZP6S@=J0^WE32=6;\U0?88]Q_RNPUMT6YU<4<S]H?:7OCQYOT4YAV1^764ENWSDBED>M7A:BI>KSIR48JQ9B=N\5T3N4A2aF0@>3TI81<G7;YE>W`NMP<:IT4CI3D0=GZC3I\CLQJQBA9BDIS9SAM55KaVA<Z@D=>:Y?CQHUQ5U3a6UVI8OKX9_FAF^7=5M85;<0;8YPAM<7Z7PP7A=N...
output:
000101000101100010001000000010010110000001000001001100000000010000100001000000101100000000010000001000000001110000010110100000111100100000001000000000011001010001000001001000100000000100011001100110010000010000101100000011111000000010000101010010000000010101000001010111100000100000000000000101000100...
result:
ok single line: '000101000101100010001000000010...0101000101000000000010101001000'
Test #5:
score: 0
Accepted
time: 2504ms
memory: 40844kb
input:
1 2000 2000 1000000 FVAaH7GRPO;_11Da5J18@3SMG==\G8E8S^6:M4L0JH>MN5IXT>2<7WJ3U8LVJS=;;3F13>0D0>VOIIU@EPHG6ABL6;K?T1PXDERLG07]5C9^GDKG<SBMIW;`4W8P3=469TIPKH0O34523_J5C2MJ17D25Z@=K8H@M>WK<CMK7EO]BPD7B6AW741J5YIHIa1:ERSG>L3N2^F3<4F`DLE@2AA5=8GZK6:192FB736[WMV7:^DA2C:<LK040VJBM3M]WXU50`407TR_?PLF@5VL7OSL...
output:
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111...
result:
ok single line: '111111111111111111111111111111...1111111111111111111111111111111'
Test #6:
score: 0
Accepted
time: 4932ms
memory: 43252kb
input:
1 2000 2000 1000000 0102030405060708090:0;0<0=0>0?0@0A0B0C0D0E0F0G0H0I0J0K0L0M0N0O0P0Q0R0S0T0U0V0W0X0Y0Z0[0\0]0^0_0`0a101112131415161718191:1;1<1=1>1?1@1A1B1C1D1E1F1G1H1I1J1K1L1M1N1O1P1Q1R1S1T1U1V1W1X1Y1Z1[1\1]1^1_1`1a202122232425262728292:2;2<2=2>2?2@2A2B2C2D2E2F2G2H2I2J2K2L2M2N2O2P2Q2R2S2T2U2V2W2X...
output:
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000...
result:
ok single line: '000000000000000000000000000000...0000000000000000000000000000000'
Test #7:
score: 0
Accepted
time: 2059ms
memory: 42980kb
input:
1 2000 2000 1000000 0102030405060708090:0;0<0=0>0?0@0A0B0C0D0E0F0G0H0I0J0K0L0M0N0O0P0Q0R0S0T0U0V0W0X0Y0Z0[0\0]0^0_0`0a101112131415161718191:1;1<1=1>1?1@1A1B1C1D1E1F1G1H1I1J1K1L1M1N1O1P1Q1R1S1T1U1V1W1X1Y1Z1[1\1]1^1_1`1a202122232425262728292:2;2<2=2>2?2@2A2B2C2D2E2F2G2H2I2J2K2L2M2N2O2P2Q2R2S2T2U2V2W2X...
output:
010001100010000000101000000110010001001010101100100100000001000000101010100010000001011111010000000001001000010101011111001010101010100100010001011011000010010100110110000100010110101110000011111101100110010100100101010000100100101110100000000101100010100111000011001110100010001010000101111001101000...
result:
ok single line: '010001100010000000101000000110...1010101000010010101000100000111'
Test #8:
score: 0
Accepted
time: 1262ms
memory: 40900kb
input:
1 2000 2000 1000000 0102030405060708090:0;0<0=0>0?0@0A0B0C0D0E0F0G0H0I0J0K0L0M0N0O0P0Q0R0S0T0U0V0W0X0Y0Z0[0\0]0^0_0`0a101112131415161718191:1;1<1=1>1?1@1A1B1C1D1E1F1G1H1I1J1K1L1M1N1O1P1Q1R1S1T1U1V1W1X1Y1Z1[1\1]1^1_1`1a202122232425262728292:2;2<2=2>2?2@2A2B2C2D2E2F2G2H2I2J2K2L2M2N2O2P2Q2R2S2T2U2V2W2X...
output:
011010100000000000000000001000001100000110000000100001010000000000000010001000000100000000000000000000100000100000000001100000100011010000000000000000000000000010000001000000010001100010000100000001000000000010000000000000001000010100000000001000000000000000000000001100010000000000000101000000101010...
result:
ok single line: '011010100000000000000000001000...0000000000000100000010010000100'
Test #9:
score: 0
Accepted
time: 749ms
memory: 40960kb
input:
1 2000 2000 1000000 1REKN]@]>9D9177?6E8DU65LCS>X3Z4KJ47@?R43H8C2ADQ<T[GGCZI]CO4SCDNAVCE534S1;0LV<:F[R`A[=89FL^BYGU7F:NBDD2F3SYLQS[O407E\V>>;EOTL=W8VAYMRO[KHRZ7^F6?:<G4R9O3AVG1\1OER1MKNMG01R?=;SWMP28:X>2=GLC1LSU<VMKQ5?KQAS^4QDTC07TK=R01WL@6596@D5IKT?YG?HaQPP:<12ZUF?GARFKJXC`NFIaJ;SXC:80V1Q@Q;FJV]3XSJ...
output:
111101100101100100000000101000110011010001100000001001101000001000010101010010100111100010100110000001000000011101001010110000101000111000010011110100010101100101011111000010000001100001000011010001101000000010100011000110101001100010111010110011001101110010001110110101000000110111010100001000011001...
result:
ok single line: '111101100101100100000000101000...1100010101000011110011110111100'
Test #10:
score: 0
Accepted
time: 86ms
memory: 38708kb
input:
1 1 2000 1000000 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 0...
output:
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111...
result:
ok single line: '111111111111111111111111111111...1111111111111111111111111111111'
Test #11:
score: 0
Accepted
time: 205ms
memory: 43020kb
input:
1 2000 2000 1000000 1ILZ2@SO4;BPWLFN@6HMAVQ]NNKR2NU30EP@3WF73^1BSKIP:VS7KQA>T\T63TAAK]8a4@7F0LD3V4LRN?M105L@>A<5D@S=MI9G9O<7<UQaF61VK;EQBEG`F8DOJ?L67;CL=@Q_IAPU2TP:43=O42I85UC\2L18KKP5MSFX73;\PFCQ:IB9?M<:FI?;N1I1>362O:;:1WQ6=Q7T=RW\WJMTQJ40U6JU>_@H:H6K0Y?[>H@K6@5AG]OEUEH>3G5C@OJ1E8O0CaO68??>A\C`:F8T...
output:
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111...
result:
ok single line: '111111111111111111111111111111...1111111111111111111111111111111'
Test #12:
score: -100
Time Limit Exceeded
input:
1 2000 2000 1000000 =H=4F4S`A?@V<E8]HBU>190VP7EDDC6EH3P4CP6K2Z3OP@LI<7H`OM:F:=FOH9BW=<1ZGIK^7P0<9RK73Z1EFKO5QC5L25TCV`HT3D@RQ_2GE<SK;_D^0;>FSL5X9_Q0L\L7TW@_ULQE0Z;MG1O:3>F<MX=:V];@=1A@;^V^E\;F:[8S@SFY340R=@Wa8NSMS[UC5KV6JNV3EA<80_;a>`2:>A28OI=EL2?aTDL3WRNY4H8R2aIY14DAHJ>6UIEOS_?=AF6];\BK3]?<TYU5=`3^...
output:
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111...