每个青蛙喝黑茶或者红茶或者都可以喝
M个矛盾关系 有矛盾的不能喝同种茶 但你可以花费Wi使得这个青蛙消除所有矛盾 把矛盾当作边 青蛙当作点 如果这两个青蛙只喝不同的一种茶就不建边
题目中保证了不存在奇环 可以黑白染色成二分图
然后把两个茶都可以喝的青蛙拆点 u表示该青蛙喝黑茶 u+n表示喝红茶 同时建边(u,u+n)
有四种情况:
1.两个青蛙都可以喝两种茶 建边(u,v) (u+n,v+n)
2.两个青蛙一个可以喝两种茶 一个可以喝黑茶 建边(u,v)
3.两个青蛙一个可以喝两种茶 一个可以喝红茶 建边(u,v+n)
4.两种青蛙都只能喝一种茶 建边(u,v)
然后黑白染色成二分图连S,T 跑二分图最小点权覆盖集
最后跑出来的答案要减去sumw 因为两种茶都可以喝的青蛙拆点导致每次拆点多花费了Wi