就模拟一下,原来有的就不记上,没有就加上,每次改一个地方,模拟更新一下就行了。
col记录每列*的个数
/*keep on going and never give up*/
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define ll long long
#define db(x) cerr<<(#x)<<" "<<(x)<<" "<<endl;
#define endl "\n"
#define fast std::ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
const double E = exp(1);
const double PI = acos(-1.0);
const int mod=1e9+7;
const int maxn=2e3+10;
char a[maxn][maxn];
signed main(){
// fast
int t=1;
//cin>>t;
while(t--){
int n,m,q;cin>>n>>m>>q;
vector<int>col(n+m,0);int sum=0;
for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) {
cin>>a[i][j];col[j]+=(a[i][j]=='*');
sum+=(a[i][j]=='*');
}
while(q--){
int x,y;cin>>x>>y;
sum-=(a[x][y]=='*');col[y]-=(a[x][y]=='*');
a[x][y]=(a[x][y]=='*'?'.':'*');
sum+=(a[x][y]=='*');col[y]+=(a[x][y]=='*');
int c=sum/n,r=sum%n;
int tt=0;
for(int i=1;i<=c;i++) tt+=col[i];
for(int i=1;i<=r;i++) tt+=(a[i][c+1]=='*');
cout<<sum-tt<<endl;
}
}
}