大整数哈希
2026/7/30 0:23:32 网站建设 项目流程

求解代码

publicstaticvoidmain(String[]args)throwsIOException{BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));StringTokenizerin=newStringTokenizer(br.readLine());PrintWriterout=newPrintWriter(newOutputStreamWriter(System.out));HashMap<Long,Long>hmap=newHashMap<>();longtotal=0;intn=Integer.parseInt(in.nextToken());for(inti=1;i<=n;i++){in=newStringTokenizer(br.readLine());longx=Long.parseUnsignedLong(in.nextToken());longy=Long.parseUnsignedLong(in.nextToken());longans=hmap.getOrDefault(x,0L);total+=(long)i*ans;hmap.put(x,y);}out.println(Long.toUnsignedString(total));out.flush();out.close();br.close();}

小贴士

  • Long.parseUnsignedLong()专门解析 64 位无符号整数。
  • Long.toString()是把最高位当作符号位,输出带正负的有符号数,而Long.toUnsignedString()不会修改内存中的数据,只是换一种规则解读二进制,把所有位都当作数值位,直接解析为无符号十进制数,和题目要求的mod 2 64 \text{mod}~2^{64}mod264结果完全一致。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询