P6331 [COCI2007-2008#1] PEG 题解
思路
对于棋子的移动,有这四种移动方法
1:oo. 2:.oo 3:o 4:.
o o
. o
根据移动方式模拟即可。
代码入下
#include <bits/stdc++.h>
// #define int long long
#define rep(i, l, r) for(int i = l; i <= r; ++ i)
using namespace std;
const int MAXN = 7;
char a[MAXN][MAXN];
int ans;
main()
{
rep(i, 0, 6)
gets(a[i]);
rep(i, 0, 6)
rep(j, 0, 6)
{
if(i + 2 < 7 && a[i][j] == 'o' && a[i + 1][j] == 'o' && a[i + 2][j] == '.') //下面
++ ans;
if(i - 2 >= 0 && a[i][j] == 'o' && a[i - 1][j] == 'o' && a[i - 2][j] == '.')//上面
++ ans;
if(j + 2 < 7 && a[i][j] == 'o' && a[i][j + 1] == 'o' && a[i][j + 2] == '.') //右面
++ ans;
if(j - 2 >= 0 && a[i][j] == 'o' && a[i][j - 1] == 'o' && a[i][j - 2] == '.')//左面
++ ans;
}
cout << ans;
return 0;
}