diff --git a/TangDou/LanQiaoBei/LanQiao14STEMA202301/BC3.cpp b/TangDou/LanQiaoBei/LanQiao14STEMA202301/BC3.cpp index b28c192..62c2e07 100644 --- a/TangDou/LanQiaoBei/LanQiao14STEMA202301/BC3.cpp +++ b/TangDou/LanQiaoBei/LanQiao14STEMA202301/BC3.cpp @@ -13,7 +13,7 @@ int main() { for (int i = 0; i < n; i++) { cin >> a[i]; sum += a[i]; - a[i + n] = a[i]; // 破环成链, 0 1 2-->a[3]=a[0],a[4]=a[1],a[5]=a[2] + a[i + n] = a[i]; // 破环成链 } avg = sum / n; // 平均数 int mi = INF; // 最少次数,给初始值最大 diff --git a/TangDou/LanQiaoBei/LanQiao14STEMA202301/BC4.cpp b/TangDou/LanQiaoBei/LanQiao14STEMA202301/BC4.cpp new file mode 100644 index 0000000..8bf7aa8 --- /dev/null +++ b/TangDou/LanQiaoBei/LanQiao14STEMA202301/BC4.cpp @@ -0,0 +1,33 @@ +#include +using namespace std; +const int N = 31; +char a[N][N]; +int n, m, cnt; + +int main() { + cin >> n >> m; + + for (int i = 0; i < n; i++) + for (int j = 0; j < m; j++) + cin >> a[i][j]; + + for (int e = 2; e <= min(m, n); e++) { // 枚举每个小正方形的边长 + for (int i = 0; i <= n - e; i++) { // 起点i + for (int j = 0; j <= m - e; j++) { // 起点j + bool f = true; + for (int x = 0; x < e; x++) { // 遍历正方形中所有的其它位置,判断是不是与左上角的一致 + for (int y = 0; y < e; y++) { + if (a[i][j] != a[i + x][j + y]) { + f = false; + break; + } + } + if (!f) break; + } + if (f) cnt++; + } + } + } + cout << cnt << endl; + return 0; +} \ No newline at end of file