AOJ 667.抢占白房子
Time Limit: 1000 ms Case Time Limit: 1000 ms Memory Limit: 64 MB
Total Submission: 79 Submission Accepted: 25Description在一个8×8的宫格图中,每个格子要么是白色,要么是黑色,且相邻的两个格子的颜色一定不同;已知左上角(1,1)的格子的颜色为白色。现给出用字符描述的该图G,如果有G(i,j)='F',则说明从上向下数的第i行(从1开始数),从左向右数的第j行(从1开始数)交叉的格子被占领,否则这个格子是空的,未被占领。
求出被占领的白格子数量。
Input单组数据
一个8×8的地图,具体参考输入样例。
Output一个整数:被占领的白格子数量。
Sample Input
Original Transformed ........ ..F..... .....F.. .....F.. ........ ........ .......F .F......
Sample Output
Original Transformed 2
若从(0,0)开始,则横坐标和纵坐标对2取余后再取反为真的为白房子。
输入读到'F'时,!((x%2)^(y%2))判断即可
1 /* 2 By:OhYee 3 Github:OhYee 4 Email:oyohyee@oyohyee.com 5 */ 6 #include <cstdio> 7 #include <algorithm> 8 #include <cstring> 9 #include <cmath> 10 #include <string> 11 #include <iostream> 12 #include <vector> 13 #include <list> 14 #include <stack> 15 using namespace std; 16 17 #define REP(n) for(int o=0;o<n;o++) 18 19 int main() { 20 int cnt = 0; 21 for(int i = 0;i < 8;i++) 22 for(int j = 0;j < 8;j++) { 23 char temp; 24 scanf("\n%c\n",&temp); 25 //printf("i=%d j=%d -> %c\n",i,j,temp); 26 if(temp == 'F') 27 if(!((i % 2) ^ (j % 2)))//奇偶性相同的为白色,对2取模后异或取反 28 cnt++; 29 } 30 printf("%d\n",cnt); 31 return 0; 32 }
然而,我并不能保证我说的是对的。请自行验证,如有错误,请指正
新博客地址
https://www.oyohyee.com
https://www.oyohyee.com