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了

原文地址:https://www.cnblogs.com/zjylzf/p/12850251.html