求调
查看原帖
求调
742030
hyh0926楼主2024/11/3 12:12

编译不了。

#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;
}
2024/11/3 12:12
加载中...