| 题目链接 | 难度等级 | 完成状态 | 完成分数 | 最后编辑时间 | 需要注意 |
|---|---|---|---|---|---|
| Pasha and Pixels | ★☆☆☆☆ | 答案正确 | 100 | 2015-02-23 15:22:53 | 无 |
n*m格子,按照顺序依次涂黑坐标,如果格子中出现2*2的黑色矩阵那么游戏结束。问游戏何时结束。
题目很长但是真心很水。最简单的模拟了。
| 508A.cpp代码已折叠
展开折叠内容
|
|---|
#include <iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstdlib>
#include<climits>
#include<queue>
#include<vector>
#define f(i,n) for(int i=1;i<=n;++i)
#define fi(i,t,n)for(int i=t;i<=n;++i)
#define fd(i,n) for(int i=n;i>=1;--i)
#define fdi(i,t,n) for(int i=n;i>=t;--i)
#define foreach(i,s) for(typeof(s.begin()) i=s.begin();i!=s.end();++i)
#define rforeach(i,s) for(typeof(s.rbegin()) i=s.rbegin();i!=s.rend();++i)
#define si(n) scanf("%d",&n)
#define dsi(n) int n;scanf("%d",&n)
#define llu unsigned long long
#define lld long long
#define ci const int &
using namespace std;
int a[1010][1010]={};
bool isEnd(ci x,ci y)
{
if(a[x][y]&&a[x][y-1]&&a[x-1][y-1]&&a[x-1][y])return 1;
if(a[x][y]&&a[x][y+1]&&a[x-1][y+1]&&a[x-1][y])return 1;
if(a[x][y]&&a[x][y-1]&&a[x+1][y-1]&&a[x+1][y])return 1;
if(a[x][y]&&a[x][y+1]&&a[x+1][y+1]&&a[x+1][y])return 1;
return 0;
}
int main()
{
dsi(n);dsi(m);dsi(k);
f(i,k)
{
dsi(x);dsi(y);
a[x][y]=1;
if(isEnd(x,y))
{
cout<<i;
return 0;
}
}
cout<<0;
return 0;
}
|