#include <iostream>
#include<cmath>
#include<math.h>
#define maxn 1005
using namespace std;
int poi[maxn][maxn];
char input;
//思路:
int main() {
int n,m,ans=0;
cin>>n>>m;
// getchar();
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>input;
poi[i][j]=input-'0';
}
// getchar();
}
//上面
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(poi[i][j]>0) ans++;
}
}
//侧面
for(int i=1;i<=n;i++){
ans += poi[i][1];
for(int j=2;j<=m;j++){
if(poi[i][j]>poi[i][j-1]) ans+=(poi[i][j]-poi[i][j-1]);
}
}
for(int j=1;j<=m;j++){
ans += poi[1][j];
for(int i=2;i<=n;i++){
if(poi[i][j]>poi[i-1][j]) ans+=(poi[i][j]-poi[i-1][j]);
}
}
cout<<ans*2;
return 0;
}
问题:
1.输入用getchar除去回车错误,用cin,cout
2.考虑问题的方式不对,模拟题,分而析之,找到特殊的点,前,上,侧
然后处理搞出来的部分用减法,往里面延伸的时候