zoukankan      html  css  js  c++  java
  • Java实现蓝桥杯互补二元组

    分三处

    1.当差值为0并且只有一个二元组就不管他

    2.当差值为0并且二元组个数>=1加上他并减去它本身

    3.当差值为存在并且不为0时直接加上他

    因为都计算了两次,所以最后ans/2

    用了map的结构,在数值大小处卡了2个小时,最后想起来是int 改成 long long Xi + Xj = Yi + Yj →Xi -Yi = Xj-Yj

    希望你看完后留下你的小评论,我们大家一起进步。

    时间限制:10000ms
    单点时限:1000ms
    内存限制:256MB

    描述
    给定N个整数二元组(X1, Y1), (X2, Y2), … (XN, YN)。

    请你计算其中有多少对二元组(Xi, Yi)和(Xj, Yj)满足Xi + Xj = Yi + Yj且i < j。

    输入
    第一行包含一个整数N。

    以下N行每行两个整数Xi和Yi。

    对于70%的数据,1 ≤ N ≤ 1000

    对于100%的数据,1 ≤ N ≤ 100000 -1000000 ≤ Xi, Yi ≤ 1000000

    输出
    一个整数表示答案。

    样例输入
    5
    9 10
    1 3
    5 5
    5 4
    8 6
    样例输出
    2

    package Xueying_Liu;
    
    import java.util.HashMap;
    import java.util.Map;
    import java.util.Scanner;
    
    public class Two_yuangroup {
        public static void main(String[] args) {
    
            Scanner sc =new Scanner(System.in);
            Map<Integer,Integer> map  = new HashMap<>();
            int count=0;
            int n = sc.nextInt();
            for (int k=0;k<n;k++){
                int i=sc.nextInt();
                int j = sc.nextInt();
                int z = i-j;
                if (map.containsKey(-z)){
                    count+=map.get(-z);
                }
                if(map.containsKey(z)){
                    map.put(z,map.get(z)+1);
                }
                else{
                    map.put(z,1);
                }
            }
            System.out.println(count);
        }
    }
    
    
  • 相关阅读:
    CSS 样式书写规范
    css等比例分割父级容器(完美三等分)
    右上角标的效果
    webstorm 激活破解方法大全
    ios开关按钮
    javascript功能封装
    Ajax 跨域
    javascript常用实例的实现与封装
    使用CSS完成元素居中的七种方法
    美化加载失败的图片
  • 原文地址:https://www.cnblogs.com/a1439775520/p/13075898.html
Copyright © 2011-2022 走看看