P3913 车的攻击
大概的意思是车可以攻击到同一行和同一列,求被攻击到的地方
思路解析:
话不多说,上代码:
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
long long ans,n,k,a[1000000],b[1000000],o,u;
int main()
{
scanf("%lld%lld",&n,&k);
for(int i=0;i<k;i++)
{
scanf("%lld%lld",&a[i],&b[i]);
}
sort(a,a+k);
sort(b,b+k);//排序
for(int i=0;i<k;i++)
{
if(a[i]!=a[i+1])
{
o++;//如果发现没有被攻击过的行,就让o++
}
if(b[i]!=b[i+1])
{
u++;//如果发现没有被攻击过的列,就让u++
}
}
ans=n*n;
ans-=(n-o)*(n-u);//公式
printf("%lld",ans);
}
就这样愉快的AC了