题目传送门
题意
给定一个n*n的棋盘,如果一个点放了棋子那么该行该列都不能再放棋子了,现在给定一些棋子的位置,问还有多少格子可以放置棋子
分析
两个数组分别记录每一行每一列还剩下多少空位置,暴力枚举每颗棋子对行和列的影响
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| #include<iostream> #include<cstring> #define MAXN 100005 using namespace std; int x[MAXN]; int y[MAXN]; long long numx, numy; int n, m; int main(){ int a, b; while(cin>>n>>m){ memset(x,0,sizeof(x)); memset(y,0,sizeof(y)); numx = numy = n; while(m--){ cin>>a>>b; if(x[a]==0){ x[a]++; numx--; } if(y[b]==0){ y[b]++; numy--; } if(m!=0) cout<<numx*numy<<" "; else cout<<numx*numy<<endl; } } }
|