在预处理时 如果你像我一样 没有把模意义下的数调整为正数的习惯的话 这里可能会造成错误:
ki[u]=qpow(G[u].size()-resk);
bi[u]=(G[u].size()+resb)*ki[u]%mod;
vector的 size() 返回值类型是unsigned
如果你的数组里存的值是负数 也会被转成 unsigned 类型 你就寄了
正确写法:
ll deg=G[u].size();
ki[u]=qpow(deg-resk);
bi[u]=(deg+resb)*ki[u]%mod;
这个错误其实具有普遍性 跟题目做法关联性不大 但是我自己被坑了 调了好久 警示一下后人