zoukankan      html  css  js  c++  java
  • hihocoder 1497 Queen Attack

    排序。

    分别按照$x$,$y$以及对角线排序,统计一下方案数就可以了。

    #include<bits/stdc++.h>
    using namespace std;
    
    int n;
    struct X
    {
        int x,y;
    }s[100010];
    
    bool cmp1(X a, X b)
    {
        return a.x<b.x;
    }
    
    bool cmp2(X a, X b)
    {
        return a.y<b.y;
    }
    
    bool cmp3(X a, X b)
    {
        return a.x+a.y<b.x+b.y;
    }
    
    bool cmp4(X a, X b)
    {
        return a.y-a.x<b.y-b.x;
    }
    
    int main()
    {
        scanf("%d",&n);
        for(int i=1;i<=n;i++) scanf("%d%d",&s[i].x,&s[i].y);
    
        long long sum=0;
    
        sort(s+1,s+1+n,cmp1);
        long long a=1;
        for(int i=2;i<=n;i++)
        {
            if(s[i].x==s[i-1].x) a++;
            else
            {
                sum=sum+a*(a-1)/2;
                a=1;
            }
        }
        sum=sum+a*(a-1)/2;
    
    
        sort(s+1,s+1+n,cmp2);
        a=1;
        for(int i=2;i<=n;i++)
        {
            if(s[i].y==s[i-1].y) a++;
            else
            {
                sum=sum+a*(a-1)/2;
                a=1;
            }
        }
        sum=sum+a*(a-1)/2;
    
        sort(s+1,s+1+n,cmp3);
        a=1;
        for(int i=2;i<=n;i++)
        {
            if(s[i].y+s[i].x==s[i-1].y+s[i-1].x) a++;
            else
            {
                sum=sum+a*(a-1)/2;
                a=1;
            }
        }
        sum=sum+a*(a-1)/2;
    
    
        sort(s+1,s+1+n,cmp4);
        a=1;
        for(int i=2;i<=n;i++)
        {
            if(s[i].y-s[i].x==s[i-1].y-s[i-1].x) a++;
            else
            {
                sum=sum+a*(a-1)/2;
                a=1;
            }
        }
        sum=sum+a*(a-1)/2;
    
        printf("%lld
    ",sum);
    
        return 0;
    }
  • 相关阅读:
    POI Excel解析
    mysql忘记root密码的解决方法
    注解实现AOP
    Java 集合类
    easyui-textbox 绑定事件
    MarqueeLabel 跑马灯
    Swift-2.14构造过程
    Swift-2.13继承
    Swift- 2.12下标脚本
    Swift-2.11方法
  • 原文地址:https://www.cnblogs.com/zufezzt/p/6683150.html
Copyright © 2011-2022 走看看