关注
我的思路就是暴力解法:1、遍历每一个点,该点作为up_left,判断它本身和up_right,down_left,down_right看是不是全为1,同时要排除这几个点没被用过,两个都符合则结果加1。 我的代码如下,只测试了题中的例子(当时没在右下角找到运行,不知道通过了多少)。不过现在想来应该有问题,因为判断这些点的时候应该四个点都判断用没用过,但我只判断了up_left。 #include <iostream>
#include <vector>
using namespace std;
int main()
{
int n, m;
cin >> n;
cin >> m;
int mat[n][m]; //people matrix
for(int i=0; i<n; i++){
for(int j=0; j<m; j++){
cin >> mat[i][j];
}
}
int res = 0; //number of store
int upl = 0;
vector<pair<int,int> > node; // 存储被用过的点
for(int i=0; i<n-1; i++){
for(int j=0; j<m-1; j++){
int node_ok = 1;
vector<pair<int,int> > ::iterator iter; //访问vector
iter=node.begin();
for(iter=node.begin();iter!=node.end();iter++)
{
if(iter->first == i && iter->second == j)
node_ok = 0; //该点被用过不OK
}
if(node_ok != 1) //不OK接着看下一个点
continue;
if(mat[i][j]==1 && mat[i+1][j]==1 && mat[i][j+1]==1 && mat[i+1][j+1]==1) //这个点可以
{
res += 1;
//把几个点都加入vector,这些点不能用了
node.push_back(make_pair<int,int>(i, j));
node.push_back(make_pair<int,int>(i+1, j));
node.push_back(make_pair<int,int>(i, j+1));
node.push_back(make_pair<int,int>(i+1, j+1));
}
}
}
cout << res <<endl;
return res;
}
查看原帖
点赞 评论
相关推荐
查看3道真题和解析 点赞 评论 收藏
分享
爱写代码的菜code...:哎,自己当时拿到字节offer的时候也在感叹终于拿到了,自己当时最想去的企业就是字节,结果还是阴差阳错去了鹅厂。祝uu一切顺利!!!
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 你知道最慷慨和最抠的公司分别是 #
2898次浏览 31人参与
# 哪些AI项目值得做? #
1890次浏览 67人参与
# 华泰星战营,提前锁定校招offer #
8301次浏览 312人参与
# 实习时最怕听到的一句话 #
2169次浏览 35人参与
# 简历上如何体现你的“AI”能力? #
2141次浏览 44人参与
# 没有面试的日子里,你在做什么 #
2765次浏览 50人参与
# 怎么给家人解释你的工作? #
56984次浏览 217人参与
# 你简历上最心虚的一句话 #
7343次浏览 40人参与
# 你总挂在第__面? #
1229次浏览 20人参与
# 找不到大厂实习可以去小厂吗? #
2294次浏览 26人参与
# 实习生如何通过转正 #
138026次浏览 1492人参与
# 国央企笔面经互助 #
196771次浏览 1235人参与
# 考公VS就业,你怎么选? #
100653次浏览 534人参与
# 你今年的保底offer是哪家 #
187730次浏览 760人参与
# 大城市找工作会更容易吗 #
66837次浏览 400人参与
# 卷__卷不过你们,只能卷__了 #
60725次浏览 767人参与
# 哪些公司对双非友好 #
231006次浏览 1248人参与
# 荣耀笔试 #
83569次浏览 410人参与
# 快消秋招求职进展汇总 #
11658次浏览 41人参与
# 职场中那些令人叹为观止的八卦 #
107560次浏览 493人参与
# 嵌入式岗知多少 #
72656次浏览 571人参与

