题意分析
首先我们需要求的是统一以后的值\(x\)
并且一般的棋盘操作我们都需要黑白染色
那么对于棋盘格子是偶数的情况的话
答案是存在单调性的
因为如果统一之后 两两搭配还是可以再加一个的
如果棋盘格子是奇数的话
那么黑格子数量为\(num1\) 权值和为\(sum1\)
白格子数量为\(num2\) 权值和为\(sum2\)
那么
\[num1*x-sum1=num2*x-sum2\]
然后我们可以使用最大流检验合法性
用源点向黑色的点连边权为\(x-num[i][j]\)的边
白色的点向汇点连边权为\(x-num[i][j]\)的边
然后黑色的点向白色的点连边权为\(inf\)的边
然后检查能否跑满流即可
至于这么做的意义 应该很好理解
也就是相邻两个点之间的匹配问题
CODE:
#include #include #include #include #include #include #include #include #include
HEOI 2019 RP++