CodeForces 729B Spotlights(思维题+前缀和)
2017-11-18 18:19
459 查看
题目链接:点击打开链接
题意:给出一个矩阵,对于数值为0的位置,统计其上下左右有几个方向存在1。计算矩阵中所有0的对应值之和。
思路:遍历每个位置,利用前缀和判断该位置四个方向存不存在1。复杂度O(n^2)。
运行/限制:155ms/1000ms
#include <cstdio>
#include <cstring>
#include <iostream>
using namespace std;
int a[1005][1005],sumr[1005][1005],sumc[1005][1005];
int main(){
int n,m,re;
while(scanf("%d%d",&n,&m) != EOF){
re = 0;
for(int i = 1;i <= n;i++){
for(int j = 1;j <= m;j++){
scanf("%d",&a[i][j]);
sumr[i][j] = sumr[i][j - 1] + a[i][j];
sumc[i][j] = sumc[i - 1][j] + a[i][j];
}
}
for(int i = 1;i <= n;i++){
for(int j = 1;j <= m;j++){
if(!a[i][j]){
if(sumr[i][j - 1]) re++;
if(sumr[i][m] - sumr[i][j]) re++;
if(sumc[i - 1][j]) re++;
if(sumc
[j] - sumc[i][j]) re++;
}
}
}
printf("%d\n",re);
}
return 0;
}
题意:给出一个矩阵,对于数值为0的位置,统计其上下左右有几个方向存在1。计算矩阵中所有0的对应值之和。
思路:遍历每个位置,利用前缀和判断该位置四个方向存不存在1。复杂度O(n^2)。
运行/限制:155ms/1000ms
#include <cstdio>
#include <cstring>
#include <iostream>
using namespace std;
int a[1005][1005],sumr[1005][1005],sumc[1005][1005];
int main(){
int n,m,re;
while(scanf("%d%d",&n,&m) != EOF){
re = 0;
for(int i = 1;i <= n;i++){
for(int j = 1;j <= m;j++){
scanf("%d",&a[i][j]);
sumr[i][j] = sumr[i][j - 1] + a[i][j];
sumc[i][j] = sumc[i - 1][j] + a[i][j];
}
}
for(int i = 1;i <= n;i++){
for(int j = 1;j <= m;j++){
if(!a[i][j]){
if(sumr[i][j - 1]) re++;
if(sumr[i][m] - sumr[i][j]) re++;
if(sumc[i - 1][j]) re++;
if(sumc
[j] - sumc[i][j]) re++;
}
}
}
printf("%d\n",re);
}
return 0;
}
相关文章推荐
- Codeforces 106D Treasure Island【思维+二维前缀和】
- CodeForces 776C Molly's Chemicals (思维+前缀)
- (Codeforces 873B)B. Balanced Substring [前缀和]+思维
- Codeforces 851D Arpa and a list of numbers【思维+前缀和】
- Codeforces_776_C_(思维)(前缀和)
- codeforces 816-B. Karen and Coffee(前缀和+思维)
- codeforces 580B Arpa and a list of numbers 前缀和+思维+分块 (调和级数)
- Codeforces 835C Star sky【思维+暴力预处理二维前缀和】
- CodeForces - 776C 思维+普通的前缀和
- Codeforces 371E Subway Innovation【思维+前缀和】
- CodeForces 873B Balanced Substring(前缀和+思维)
- Balanced Substring CodeForces - 873B(思维+前缀和)
- Codeforces 846C Four Segments【思维+预处理+前缀和枚举】
- Codeforces 651D Image Preview【思维+二分+前缀后缀和】
- CodeForces 865D Buy Low Sell High(思维)
- CodeForces - 827A String Reconstruction(思维+字符串处理)
- CodeForces - 931D Peculiar apple-tree(思维)
- Codeforces 814D An overnight dance in discotheque【思维】
- Codeforces 846 C Four Segments(前缀和+枚举)
- Codeforces 846 D Monitor(类似求面积的前缀和)