题目传送门

题意

给定一个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;
}
}
}

留言

2016-07-28

⬆︎TOP