观察题图可知,一个骑士能攻击到的格子与自己所在的格子异色,所以有一种摆法是都摆在同一颜色的格子上,把一条相互攻击的关系变为网络流路径,这样就将扔掉骑士转化为了求最小割
因为一个骑士能与多个骑士互相攻击,所以可以共用路径
建图如下:
·源点向每个黄格子连边,流量为1
·每个黄格子向能攻击到的红格子连边,流量为∞
·每个红格子向汇点连边,流量为1
跑最大流求出最少扔掉几个骑士,答案为n^2−m−maxflow