Japan Registry Services (JPRS) Programming Contest 2024 (AtCoder Beginner Contest 339)

该篇文章介绍了一种解题方法,针对给定的整数数组,通过哈希和取模操作将乘积问题规模缩小,利用三哈希判断来寻找满足Ai×Aj=Ak的整数三元组(i,j,k),在Java代码中实现了一个名为F-ProductEquality的解决方案。

F - Product Equality

题目大意
  • 给定N个整数A1,A2,…,AN。 找到满足以下条件的整数三元组(i,j,k)的数量:

    1≤i,j,k≤N Ai×Aj=Ak 1 ≤ N ≤ 1000 1 ≤ Ai < 10^1000

解题思路
  • A_i很大,不能直接进行乘法计算

  • 考虑哈希,取模变小

  • 为保证结果的正确性,进行三哈希判断,都满足时为正确

  • 注意i,j,k可以相等

    import java.io.*;
    import java.math.BigInteger;
    import java.util.Arrays;
    import java.util.BitSet;
    import java.util.HashMap;
    import java.util.HashSet;
    import java.util.Iterator;
    import java.util.LinkedList;
    import java.util.PriorityQueue;
    import java.util.Queue;
    import java.util.Random;
    import java.util.StringTokenizer;
    import java.util.Vector;
    
    
    
    
    public class Main{
    	
    	public static void main(String[] args) throws IOException{
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值