QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#566055 | #9319. Bull Farm | qdsdsy | TL | 4971ms | 43288kb | C++14 | 3.4kb | 2024-09-15 22:56:50 | 2024-09-15 22:56:52 |
Judging History
answer
#include<cstdio>
#include<queue>
#include<algorithm>
using namespace std;
#define MAXN 2010
#define MAXQ 1000010
#define re register
#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];
bool 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]=bfs(a,b);
}
for(int i=1;i<=q;i++)
printf("%d",(int)ans[i]);
printf("\n");
}
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: 10280kb
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: 2ms
memory: 12020kb
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: 116ms
memory: 14372kb
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: 1340ms
memory: 29164kb
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: 2552ms
memory: 43288kb
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: 4971ms
memory: 42996kb
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: 2060ms
memory: 40956kb
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: 1301ms
memory: 40904kb
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: 802ms
memory: 42992kb
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: 121ms
memory: 39728kb
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: 226ms
memory: 43264kb
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^...