链接:
https://www.nowcoder.com/acm/contest/142/F
题意:
n x m的矩形,选个p x q的矩形去掉,两个矩形中⼼重合,去掉后的矩形上下左右对称
求(p, q)⽅方案数
n, m <= 2000, n, m是偶数,p < n 且 q < m
分析:
直接求对称的外框有多宽多长, 答案就是长*宽
#include <bits/stdc++.h> using namespace std; int n, m; string G[12345]; int main() { // freopen("1.txt","r", stdin); int T; cin >> T; while(T--) { cin >> n >> m; for(int i = 0; i < n; i++) { cin >> G[i]; } int c, r; for(c = 0; c < n/2; c++) { bool flag = true; for(int k = 0; k < m; k++) { if(G[c][k] != G[n-c-1][k]) { flag = false; break; } } if(!flag || c == n/2 - 1) break; } for(r = 0; r < m/2; r++) { bool flag = true; for(int k = 0; k < n; k++) { if(G[k][r] != G[k][m-r-1]) { flag = false; break; } } if(!flag || r == m/2 - 1) break; } cout << c * r << " "; } }