zoukankan      html  css  js  c++  java
  • 【洛谷 3913】车的攻击

    题目描述

    N imes NN×N 的国际象棋棋盘上有KK 个车,第ii个车位于第R_iRi行,第C_iCi 列。求至少被一个车攻击的格子数量。

    车可以攻击所有同一行或者同一列的地方。

    输入格式

    第1 行,2 个整数N,KN,K。

    接下来K 行,每行2 个整数R_i,C_iRi,Ci

    输出格式

    1 个整数,表示被攻击的格子数量。

    输入输出样例

    输入 #1
    3 2
    1 2
    2 2
    输出 #1
    7

    说明/提示

    • 对于30% 的数据,1 le N le 10^3; 1 le K le 10^31N103;1K103;

    • 对于60% 的数据,1 le N le 10^6; 1 le K le 10^61N106;1K106;

    • 对于100% 的数据,1 le N le 10^9; 1 le K le 10^6; 1 le R_i , C_i le N1N109;1K106;1Ri,CiN。

    题解:这题有点似曾相识啊…数学题(二话不说先吸氧)

    // luogu-judger-enable-o2
    // luogu-judger-enable-o2
    #include<cstdio>
    #include<iostream>
    #include<cmath>
    #include<cstdlib>
    #include<cstring>
    #include<algorithm>
    typedef long long ll;
    using namespace std;
    const int N=1000009;
    long long n,k,x[N],y[N],i,h,l;
    int main()
    {
        cin>>n>>k;
        int a=1;
        int b=1;
        for(i=1;i<=k;i++)
        cin>>x[i]>>y[i];
        sort(x+1,x+k+1);
        sort(y+1,y+k+1);
        for(i=1;i<=k;i++)
        {
            if(x[i]!=x[i+1] && a==b) h++;
            if(y[i]!=y[i+1] && a==b) l++;
        }
        cout<<n*n-(n-h)*(n-l);
    }
  • 相关阅读:
    递归算法介绍及Java应用实战
    常用缓存淘汰算法(LFU、LRU、ARC、FIFO、MRU)
    阿里巴巴高级Java面试题(首发,70道)
    2017阿里技术年度精选(全)
    10年老兵给程序员的10条建议!
    8条关于Web前端性能的优化建议
    (16)约束
    (15)oracle序列
    (14)oracle数据字典
    (13)oracle导出、导入
  • 原文地址:https://www.cnblogs.com/wuhu-JJJ/p/11243180.html
Copyright © 2011-2022 走看看