平面格子中,可以一行或一列地染色,则其重复染的格子为len1*len2
#include<bits/stdc++.h> using namespace std; #define ll long long ll n,m; set<ll>s1,s2; //分别记录行和列的个数 int main(){ cin >> n >> m; while(m--){ ll a,b,ans; cin >> a >> b; s1.insert(a); s2.insert(b); ll len1=s1.size(),len2=s2.size(); //len1,len2分别为被染行和列的个数 ans=n*n-len1*n-len2*n+len1*len2; //精华 cout << ans << " "; } return 0; }