import java.math.BigInteger; import java.util.HashMap; import java.util.Scanner; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner scanner=new Scanner(System.in); int n=scanner.nextInt(); HashMap<BigInteger, BigInteger> map=new HashMap<>(); BigInteger sum=new BigInteger("0"); BigInteger a=new BigInteger("2"); a=a.pow(64); for (long i = 1; i <= n; i++) { BigInteger x=new BigInteger(scanner.next()); BigInteger y=new BigInteger(scanner.next()); sum=sum.add(map.getOrDefault(x, new BigInteger("0")).multiply(new BigInteger(""+i))); map.put(x, y); } System.out.println(sum.mod(a)); } }
这道题按照题意模拟就行,我们需要创建一个sum来装最后的结果,要注意,BigInteger的求模使用的是mod,这个我之前不知道