摘要

题目链接 难度等级 完成状态 完成分数 最后编辑时间 需要注意
Pasha and Pixels ★☆☆☆☆ 答案正确 100 2015-02-23 15:22:53

题意

n*m格子,按照顺序依次涂黑坐标,如果格子中出现2*2的黑色矩阵那么游戏结束。问游戏何时结束。

题解

题目很长但是真心很水。最简单的模拟了。

代码

508A.cpp代码已折叠
展开折叠内容
显示/移除行号
  1. #include <iostream>
  2. #include<cstdio>
  3. #include<algorithm>
  4. #include<cmath>
  5. #include<cstdlib>
  6. #include<climits>
  7. #include<queue>
  8. #include<vector>
  9. #define f(i,n) for(int i=1;i<=n;++i)
  10. #define fi(i,t,n)for(int i=t;i<=n;++i)
  11. #define fd(i,n) for(int i=n;i>=1;--i)
  12. #define fdi(i,t,n) for(int i=n;i>=t;--i)
  13. #define foreach(i,s) for(typeof(s.begin()) i=s.begin();i!=s.end();++i)
  14. #define rforeach(i,s) for(typeof(s.rbegin()) i=s.rbegin();i!=s.rend();++i)
  15. #define si(n) scanf("%d",&n)
  16. #define dsi(n) int n;scanf("%d",&n)
  17. #define llu unsigned long long
  18. #define lld long long
  19. #define ci const int &
  20. using namespace std;
  21. int a[1010][1010]={};
  22. bool isEnd(ci x,ci y)
  23. {
  24. if(a[x][y]&&a[x][y-1]&&a[x-1][y-1]&&a[x-1][y])return 1;
  25. if(a[x][y]&&a[x][y+1]&&a[x-1][y+1]&&a[x-1][y])return 1;
  26. if(a[x][y]&&a[x][y-1]&&a[x+1][y-1]&&a[x+1][y])return 1;
  27. if(a[x][y]&&a[x][y+1]&&a[x+1][y+1]&&a[x+1][y])return 1;
  28. return 0;
  29. }
  30. int main()
  31. {
  32. dsi(n);dsi(m);dsi(k);
  33. f(i,k)
  34. {
  35. dsi(x);dsi(y);
  36. a[x][y]=1;
  37. if(isEnd(x,y))
  38. {
  39. cout<<i;
  40. return 0;
  41. }
  42. }
  43. cout<<0;
  44. return 0;
  45. }

著作权声明[编辑]

关于[编辑]