错误的
if(x[0]=='m'&&y[0]=='m') add(a+n,b),add(b+n,a);
if(x[0]=='h'&&y[0]=='m') add(a,b),add(b+n,a+n);
if(x[0]=='m'&&y[0]=='h') add(a+n,b+n),add(b,a);
else add(a,b+n),add(b,a+n);
正确的
if(x[0]=='m'&&y[0]=='m') add(a+n,b),add(b+n,a);
if(x[0]=='h'&&y[0]=='m') add(a,b),add(b+n,a+n);
if(x[0]=='m'&&y[0]=='h') add(a+n,b+n),add(b,a);
if(x[0]=='h'&&y[0]=='h') add(a,b+n),add(b,a+n);
错误的原因显而易见,但我找了好久