• Codeforces Round #341 Div.2 B. Wet Shark and Bishops


    题意:处在同一对角线上的主教(是这么翻译没错吧= =)会相互攻击 求互相攻击对数

    由于有正负对角线 因此用两个数组分别保存每个主教写的 x-y 和 x+y

    然后每个数组中扫描重复数字k ans加上kC2就行了

    wa了两发的原因是没考虑到如果整个数组都是重复的 那要最后额外加一次

    #include <cstdio>
    #include <cmath>
    #include <cstring>
    #include <queue>
    #include <vector>
    #include <algorithm>
    #define INF 0x3f3f3f3f
    #define mem(str,x) memset(str,(x),sizeof(str))  
    #define STOP puts("Pause");
    using namespace std;
    typedef long long LL;
    
    int n, node[200010], node2[200010];
    LL ans;
    
    int main()
    {
        ans = 0;
        scanf("%d", &n);
        for(int i = 1; i <= n; i++){
            int x, y;
            scanf("%d%d", &x, &y);
            node[i] = x - y;
            node2[i] = x + y;
        }
        sort(node + 1, node + 1 + n);
        sort(node2 + 1, node2 + 1 + n);
        LL count = 1;
        for(int i = 2; i <= n; i++){
            if(node[i] == node[i-1]) count++;
            else{
                ans += (count * (count - 1) / 2);
                count = 1;
            }
        }
        ans += (count * (count - 1) / 2);
        count = 1;
        for(int i = 2; i <= n; i++){
            if(node2[i] == node2[i-1]) count++;
            else{
                ans += (count * (count - 1) / 2);
                count = 1;
            }
        }
        ans += (count * (count - 1) / 2);
        printf("%I64d
    ", ans);
        return 0;
    }
  • 相关阅读:
    vmware克隆Centos6.4虚拟机网卡无法启动问题
    mysql错误:Statement violates GTID consistency
    /etc/vsftpd.conf详解
    Linux /etc/fstab文件
    sudo命令详解
    linux fack 文件系统修复命令
    ORA-01502: 索引或这类索引的分区处于不可用状态
    Oracle 完整性约束错误
    linux下部署redis
    Python 发送邮件案例
  • 原文地址:https://www.cnblogs.com/quasar/p/5174236.html
Copyright © 2020-2023  润新知