先把偶数行换了,再把偶数列换了,这样能得到相同的颜色,次数为n/2+m/2次,但是为什么为最小值,不会证明,直觉。
#include<cstdio> #include<cstring> #include<cmath> #include<string> #include<vector> #include<queue> #include<algorithm> #include<iostream> using namespace std; int n,m; int main() { int T; scanf("%d",&T); while(T--) { scanf("%d%d",&n,&m); printf("%d ",n/2+m/2); } return 0; }