码迷,mamicode.com
首页 > 其他好文 > 详细

[2016-04-17][Gym][100947][B][Queens, Again!!]

时间:2016-04-17 17:46:01      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:

  • 时间:2016-04-17 16:20:49 星期日

  • 题目编号:[2016-04-17][Gym][100947][B][Queens, Again!!]

  • 题目大意:8皇后问题,给出8皇后的位置,判断8皇后是否能互相攻击

  • 分析:

    • 同行,同列,同对角线
    • 同对角线:横纵坐标之差,之和相同
  • 遇到的问题:

  1. #include<cstdio>
  2. using namespace std;
  3. struct Point{
  4. int x,y;
  5. }p[10];
  6. int check(int a,int b){
  7. if(p[a].x == p[b].x) return 1;
  8. if(p[a].y == p[b].y) return 1;
  9. if(p[a].x - p[a].y == p[b].x - p[b].y) return 1;
  10. if(p[a].x + p[a].y == p[b].x + p[b].y) return 1;
  11. return 0;
  12. }
  13. int main(){
  14. int t;
  15. scanf("%d",&t);
  16. while(t--){
  17. char str[10];
  18. for(int i = 0 ; i < 8 ; ++i){
  19. scanf("%s",str);
  20. p[i].x = str[0] - ‘A‘;
  21. p[i].y = str[1] - ‘0‘;
  22. }
  23. int flg = 1;
  24. for(int i = 0 ; flg && i < 8 ; ++i){
  25. for(int j = i + 1 ;flg && j < 8 ; ++j){
  26. if(check(i,j)){
  27. flg = 0;
  28. }
  29. }
  30. }
  31. puts(flg ? "Valid" : "Invalid");
  32. }
  33. return 0;
  34. }




[2016-04-17][Gym][100947][B][Queens, Again!!]

标签:

原文地址:http://www.cnblogs.com/qhy285571052/p/88d6475baa3fd7c9dc8fd7c4c984636a.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!