CodeForces每日好题10.14

CodeForces每日好题10.14_第1张图片

给你一个n*n的矩阵 你可以反转 问你能否在执行k步后变成中心对称的矩阵

先统计一下最少步数 然后给的步数减去最小步数如果是个偶数的话可以完成

还有一个坑点在于:当给的矩阵n是一个奇数行的时候,显然只要最小步数小于等于给定的步数的话就是有解的~

// Problem: B. Li Hua and Pattern
// Contest: Codeforces - Codeforces Round 864 (Div. 2)
// URL: https://codeforces.com/contest/1797/problem/B
// Memory Limit: 256 MB
// Time Limit: 1000 ms
// 
// Powered by CP Editor (https://cpeditor.org)

#include
using namespace std;
using ll=long long;
const int N = 2e5+10;
int n,m;
vector> arr(1010,vector(1010,0));

void solve()
{
	cin>>n>>m;
	
	
	for(int i=1;i<=n;i++)
	 for(int j=1;j<=n;j++) 
	  	cin>>arr[i][j];
	 
	
	int ans = 0;
	for(int i=1;i<=n;i++)
	 for(int j=1;j<=n;j++)
	  if(arr[i][j]&&!arr[n+1-i][n+1-j]){
	  	ans++;
	  	arr[n+1-i][n+1-j] = 1;
	  }
	
	
	if(m>_;
	while(_--)solve();
	return 0;
}

你可能感兴趣的:(Codeforces,算法,c++,数据结构)