第四题: int helper(int i, int j, int x, int y, int k, vector<vector<char>> &graph) {     for (int a = 0; a < k; a++) {         for (int b = 0; b < k; b++) {             if (graph[i + a][j + b] != graph[x + a][y + b]) {                 k = min(k, b);             }         }     }     return k; } int main() {     int n, m;     cin >> n >> m;     vector<vector<char>> graph(n, vector<char>(m));     vector<vector<pair<int, int>>> hash(26);     for (int i = 0; i < n; i++) {         for (int j = 0; j < m; j++) {             cin >> graph[i][j];             hash[graph[i][j] - 'a'].push_back(make_pair(i, j));         }     }     int i, j, x, y, k, temp;     int res = 0;     vector<int> re(4);     for (int t = 0; t < 26; t++) {         for (int a = 0; a < hash[t].size(); a++) {             for (int b = a + 1; b < hash[t].size(); b++) {                 i = hash[t][a].first;                 j = hash[t][a].second;                 x = hash[t][b].first;                 y = hash[t][b].second;                 k = min(min(n - i, m - j), min(n - x, m - y));                 temp = helper(i, j, x, y, k, graph);                 if (temp > res) {                     res = temp;                     re[0] = i;                     re[1] = j;                     re[2] = x;                     re[3] = y;                 }             }         }     }     if (res != 0) {         cout << res << endl;         cout << re[0] + 1 << ' ' << re[1] + 1 << endl;         cout << re[2] + 1 << ' ' << re[3] + 1 << endl;     }     else         cout << 0 << endl;     system("pause");     return 0; }
点赞 评论

相关推荐

牛客网
牛客网在线编程
牛客网题解
牛客企业服务