编译不了。
#include<bits/stdc++.h>
using namespace std;
int t,n,k,q,l[200002],rm,r[100002],c[100002];
bool dp1[100002][200002],dp2[100002][200002],vis[200002];
bool dp3[202],dp4[202];
vector<int> s[200002];
int main()
{
cin>>t;
while(t--)
{
memset(dp1,0,sizeof(dp1));
memset(dp2,1,sizeof(dp2));
cin>>n>>k>>q;
for(int i=1;i<=n;i++)
{
cin>>l[i];
for(int j=1;j<=l[i];j++)
{
int lk;
cin>>lk;
s[i].push_back(lk);
}
}
for(int i=1;i<=q;i++)
{
cin>>r[i]>>c[i];
rm=max(rm,r[i]);
dp3[r[i]]=1;
dp4[r[i]]=c[i];
}
for(int ri=1;ri<=rm;ri++)
{
memset(vis,0,sizeof(0));
for(int i=1;i<=n;i++)
{
for(int j=1;j<=l[i];j++)
{
dp1[i][j]=vis[s[i][j-1]];
}
for(int j=1;j<=l[i];j++)
{
if(dp2[i][j])
{
vis[s[i][j-1]]=1;
}
}
}
memset(vis,0,sizeof(0));
for(int i=n;i>=1;i--)
{
for(int j=1;j<=l[i];j++)
{
dp1[i][j]=dp1[i][j]||vis[s[i][j-1]];
}
for(int j=1;j<=l[i];j++)
{
if(dp2[i][j])
{
vis[s[i][j-1]]=1;
}
}
}
for(int i=1;i<=n;i++)
{
int a=2;
for(int j=1;j<=l[i];j++)
{
if(dp1[i][j])
{
for(;a<=j+k-1;a++)
{
dp2[i][a]=1;
if(dp3[ri]==1&&s[i][a-1]==dp4[ri]&&dp2[i][a])
{
cout<<1<<"\n";
}
else if(dp3[ri]==1&&s[i][a-1]==dp4[ri])
{
cout<<0<<"\n";
}
}
}
}
}
}
}
return 0;
}