https://www.luogu.com.cn/problem/P11155
20pts前两个测试点过了,其余全WA
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int maxn=105;
bool player[maxn][maxn];//选手
struct node
{
int d;//子任务个数
int sonproblem[maxn];//子任务
};
node a[maxn];
int n;
int m;
int score[maxn];//选手成绩
signed main ()
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i].d;
for(int j=1;j<=a[i].d;j++)
{
cin>>a[i].sonproblem[j];
}
}
cin>>m;
for(int i=1;i<=m;i++)
{
for(int j=1;j<=n;j++)
{
cin>>player[i][j];
}
}
memset(score,0,sizeof(score));
for(int i=1;i<=m;i++)
{
for(int j=1;j<=n;j++)
{
if(player[i][j]==1)
{
bool b=1;
for(int k=1;k<=a[j].d;k++)
{
if(player[i][a[j].sonproblem[k]]==0)
{
b=0;
}
}
if(b==1)
{
score[i]++;
}
}
}
}
for(int i=1;i<=m;i++)
{
cout<<score[i]<<"\n";
}
return 0;
}
代码简单加了点注释,求调!