当前位置: 首页 > news >正文

Codeforces Round 925 (Div. 3) D. Divisible Pairs (Java)

Codeforces Round 925 (Div. 3) D. Divisible Pairs (Java)

比赛链接:Codeforces Round 925 (Div. 3)

D题传送门:D.Divisible Pairs

题目:D.Divisible Pairs

题目描述

在这里插入图片描述

输出格式

For each test case, output a single integer — the number of beautiful pairs in the array $ a $ .

样例 #1

样例输入 #1

7
6 5 2
1 2 7 4 9 6
7 9 5
1 10 15 3 8 12 15
9 4 10
14 10 2 2 11 11 13 5 6
9 5 6
10 7 6 7 9 7 7 10 10
9 6 2
4 9 7 1 2 2 13 3 15
9 2 3
14 6 1 15 12 15 8 2 15
10 5 7
13 3 3 2 12 11 3 7 13 14

样例输出 #1

2
0
1
3
5
7
0

分析:

题目要我们求美丽对的数量。

由美丽对的定义可得

  • a i + a j a_i + a_j ai+aj % x = 0 x = 0 x=0 等价于 a i a_i % x = 0 ai% x = 0 && a j a_j % x = 0 aj% x = 0
  • a i − a j a_i - a_j aiaj % y = 0 y = 0 y=0 等价于 a i a_i % x ai%y + a j a_j % x = 0 aj% y = y

我们定义一个HashMap的集合,集合的键 List 用来存储 ai%x 和 ai%y 的值,集合的值用来存储键出现对应的次数。

定义一个变量 t 来存储 a i a_i ai

定义 ArrayList a 先存储 t%x 再 存储 t%y
定义 ArrayList b 先存储 (x-a.get(0))%x 再 存储 t%y

计算 map 中 b 出现的次数,然后将 a 加入到 map 中

代码:

import java.util.*;public class Main{public static void main(String[] args) {     Scanner sc = new Scanner(System.in);int tr = sc.nextInt();while(tr-->0) {int n = sc.nextInt();int x = sc.nextInt();int y = sc.nextInt();Map<List<Integer>,Long> map = new HashMap<>();long ans = 0;for(int i = 0;i < n;i++) {int t = sc.nextInt();ArrayList<Integer> a = new ArrayList<>();ArrayList<Integer> b = new ArrayList<>();a.add(t%x);a.add(t%y);b.add((x-a.get(0))%x);b.add(t%y);if(map.containsKey(b)) {ans += map.get(b);}map.put(a,map.getOrDefault(a, (long) 0)+1);}System.out.println(ans);}sc.close();}
}
http://www.lryc.cn/news/299601.html

相关文章:

  • 【C语言】实现单链表
  • Hive调优——合并小文件
  • 设计模式(行为型模式)责任链模式
  • HTTP和HTTPS区别!
  • 麻将普通胡牌算法(带混)
  • Rust结构体详解:定义、使用及方法
  • LeetCode、435. 无重叠区间【中等,贪心 区间问题】
  • 【实战】一、Jest 前端自动化测试框架基础入门(三) —— 前端要学的测试课 从Jest入门到TDD BDD双实战(三)
  • 信息学奥赛一本通1228:书架
  • 红队打靶练习:GLASGOW SMILE: 1.1
  • 网络安全的今年:量子、生成人工智能以及 LLM 和密码
  • 【FPGA】Verilog:奇偶校验位发生器 | 奇偶校验位校验器
  • 【心得】关于STM32中RTC的校准方法
  • 消息中间件面试篇
  • 【MySQL】-20 MySQL综合-6(MySQL创建数据表+MySQL修改数据表+MySQL删除数据表)
  • linux查看当前连接的IP
  • 洛谷_P1923 【深基9.例4】求第 k 小的数_python写法
  • 【MySQL】学习约束和使用图形化界面创建表
  • QGIS编译(跨平台编译)之四十八:pixman编译(Windows、Linux、MacOS环境下编译)
  • 华为数通方向HCIP-DataCom H12-821题库(单选题:441-460)
  • 【sass】 中使用 /deep/ 修改 elementUI 组件样式报错
  • Python算法题集_排序链表
  • 红日靶场2学习
  • 将 下载下来的 jar 包 安装到本地的 maven 仓库中
  • Qt初使用(使用Qt创建项目,在创建的项目中添加类,Qt中输出内容到控制台,设置窗口大小和窗口标题,Qt查看说明文档)
  • 【黑马程序员】C++运算符重载
  • Java中的乐观锁和悲观锁
  • 从Unity到Three.js(计时器、Transform)
  • 红日靶场(初学)
  • 【PyTorch】改变张量(Tensor)形状操作