hdu1068,一直wa,测试的数据对的,请大家帮忙看看
#include<iostream>
using namespace std;
int g[1005][1005];
int match[1005],used[1005];
int n;
int dfs(int i)
{
int j;
for(j=0;j<n;j++)
{
if(!used[j]&&g[i][j]==1)
{
used[j]=1;
if(match[j]==-1||dfs(match[i]))
{
match[j]=i;
return 1;
}
}
}
return 0;
}
int bis()
{
int res=0;
memset(match,-1,sizeof(match));
for(int i=0;i<n;i++)
{
memset(used,0,sizeof(used));
if(dfs(i))res++;
}
return res;
}
int main()
{ int m,i,j,k,a;
while(scanf("%d",&n)!=EOF)
{
memset(g,0,sizeof(g));
for(i=0;i<n;i++)
{
scanf("%d: (%d)",&m,&k);
for(j=0;j<k;j++)
{
scanf("%d",&a);
if(a>m)
g[m][a]=1;
}
}
printf("%d\n",n-bis());
}
return 0;
}
[解决办法]
我不是要设计一个与原样例相同的输入,而是导出新的测试用例:
3
2: (2) 1 0
1: (1) 0
0: (1) 0
或
3
0: (1) 0
1: (1) 0
2: (2) 1 0
如果你认为以上输入是合法的,那就请试一下吧。