#include<bits/stdc++.h>
using namespace std;
int map1[1005][1005];
vector<int>row[1005];
vector<int>col[1005];
int main()
{
int n,m;
cin>>n>>m;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
cin>>map1[i][j];
if(map1[i][j])
{
row[i].push_back(j);
col[j].push_back(i);
}
}
}
int ans=0;
int flag=0,flag1=0;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
if(!map1[i][j])
{
flag=0;flag1=0;
for(int k=0;k<row[i].size();k++)
{
if(row[i][k]>j&&!flag)
{
flag=1;
ans++;
}
if(row[i][k]<j&&!flag1)
{
flag1=1;
ans++;
}
if(flag&&flag1)
break;
}
flag=0;flag1=0;
for(int k=0;k<col[j].size();k++)
{
if(i<col[j][k]&&!flag)
{
flag=1;
ans++;
}
if(i>col[j][k]&&!flag1)
{
flag1=1;
ans++;
}
if(flag&&flag1)
break;
}
}
}
}
cout<<ans<<endl;
return 0;
}
codeforces B. Spotlights
本文介绍了一种用于在二维矩阵中搜索特定元素的算法。该算法通过预处理每一行和每一列来快速定位目标元素的位置,并统计了在空位置上可能进行的有效操作数,适用于解决特定类型的计算机科学问题。

被折叠的 条评论
为什么被折叠?



