n = read();
for(re int i=1;i<=n;i++) sch[i] = read();
for(re int i=1;i<=n;i++) { go[i] = read(); if(go[i] && sch[i]) cnt++; }
for(re int i=1;i<=n;i++)
for(re int j=1;j<=n;j++)
{
know = read();
if(i == j) { if(sch[i] && !go[i]) add(i,i+n); continue; }
if(know && sch[j]) add(i,j+n);
}
for(re int i=1;i<=n;i++)
{
memset(vis , 0 , sizeof vis);
if(dfs(i)) ans++;
}
if(ans == n-cnt) puts("^_^"); else puts("T_T");
}
这是核心代码,我的疑问是在我的代码中,这类同学不会连边,理应不会对答案产生贡献。那为啥被注释的那一行加上就过,去掉就不过了