蓝桥选拔第一场(E)

来源:互联网 发布:淘宝延长收货可以多久 编辑:程序博客网 时间:2024/06/10 05:17



Select Code
#include<iostream>#include<string>#include<iomanip>#include<algorithm>#include<string.h>using namespace std;int main(){int n, m; string a[1002];while (cin >> n >> m){int s = 0;for (int i = 0; i < n; i++)cin >> a[i];for (int i = 0; i < n; i++)for (int j = 0; j < m; j++){int t = 0;if (a[i][j] == '*'){if (j == 0) continue;if (j + 4 > m - 1) continue;if (i + 5 > n - 1) continue;if (a[i][j + 1] == '*'&&a[i][j + 2] == '*'&&a[i][j + 3] == '*'&&a[i][j - 1] != '*'&&a[i][j + 4] != '*'){for (int k = i + 1; k <= i + 4; k++)for (int h = j - 1; h <= j + 4; h++){if (a[k][h] != '*'){t = 1; break;}}if (t == 0){if (a[i + 5][j] != '*' || a[i + 5][j + 1] != '*' || a[i + 5][j + 2] != '*' || a[i + 5][j + 3] != '*' || a[i + 5][j - 1] == '*' || a[i + 5][j + 4] == '*')t = 1;}if (t == 0){if (i > 0){if (a[i - 1][j] == '*' || a[i - 1][j + 1] == '*' || a[i - 1][j + 2] == '*' || a[i - 1][j + 3] == '*')t = 1;}if (i + 5 < n - 1){if (a[i + 6][j] == '*' || a[i + 6][j + 1] == '*' || a[i + 6][j + 2] == '*' || a[i + 6][j + 3] == '*')t = 1;}if (j >= 2){if (a[i + 1][j - 2] == '*' || a[i + 2][j - 2] == '*' || a[i + 3][j - 2] == '*' || a[i + 4][j - 2] == '*')t = 1;}if (j + 4 < m - 1){if (a[i + 1][j + 5] == '*' || a[i + 2][j + 5] == '*' || a[i + 3][j + 5] == '*' || a[i + 4][j + 5] == '*')t = 1;}if(t==0)s++;}}}}cout << s << endl;}return 0;}
此题细节较多,选好入手点思路会清晰许多。我们可以先判断这个烧饼本身,然后判断烧饼的外围有没有缀余。