RT,代码如下:
#include<bits/stdc++.h>
using namespace std;
int n,m,s[1010][1010];
long long dp[1010][1010],ans;
char c[1010][1010];
int main(){
scanf("%d%d",&n,&m);
for(register int i=1;i<=n;i++) scanf("%s",c[i]+1);
for(register int i=1;i<=n;i++){
for(register int j=1;j<=m;j++){
if(c[i][j]=='*') s[i][j]=0;
else s[i][j]=s[i][j-1]+1;
}
}
for(register int i=1;i<=n;i++){
for(register int j=1;j<=m;j++){
int mins=1e9;
for(register int k=i;k>=1;k--){
if(s[k][j]){
mins=min(mins,s[k][j]);
dp[i][j]+=mins;
}else break;
}
ans+=dp[i][j];
}
}
printf("%lld",ans);
return 0;
}