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

华为OD机考-素数伴侣-逻辑分析(JAVA 2025B卷)

在这里插入图片描述

在这里插入图片描述

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;public class PrimeCouple {public static void main(String[] args) throws IOException {/*** 奇数偶数 分组* 循环奇数组 找到偶数组中能够奇数匹配的素数伴侣* 已有伴侣的偶数则让给后来可以重新找到伴侣的*/BufferedReader br = new BufferedReader(new InputStreamReader(System.in));int N = Integer.valueOf(br.readLine());String [] lines = br.readLine().split("\\s");List<Integer> odds = new ArrayList<>(8);List<Integer> evens = new ArrayList<>(8);for(String i : lines){int item = Integer.valueOf(i);if(item % 2 == 1){odds.add(item);}if(item % 2 == 0){evens.add(item);}}int count = 0;int [] matchEvens = new int[evens.size()];for(int odd : odds){boolean [] v = new boolean[evens.size()];if(find(odd,matchEvens,evens,v)){count++;}}System.out.println(count);}static boolean find(int odd,int[] matchEvens,List<Integer> evens,boolean[] v){//遍历偶数//去检查当前传入的奇数能否与偶数匹配for (int i = 0; i < evens.size(); i++){boolean prime = isPrime(odd + evens.get(i));if(prime && !v[i]){v[i] = true;//如果第i个偶数没有伴侣//或者第i个偶数原来有伴侣,并且该伴侣能够重新找到伴侣的话(这里有递归调用)//则奇数x可以设置为第i个偶数的伴侣//这里采用了匈牙利算法,能让则让if(matchEvens[i] == 0 || find(matchEvens[i],matchEvens,evens,v)){matchEvens[i] = odd;return true;}}}return false;}private static boolean isPrime(int n) {if(n == 1) return false;for (int i = 2;i <= (int)Math.sqrt(n); i++){if(n % i == 0)return false;}return true;}
}
http://www.dtcms.com/a/256689.html

相关文章:

  • AWS 使用图形化界面创建 EKS 集群(零基础教程)
  • jenkins对接、jenkins-rest
  • 单例模式-Python示例
  • 如何仅用AI开发完整的小程序<4>—小程序页面创建与删除
  • 【Linux】进程间多种通信方式对比
  • Flink Sink函数深度解析:从原理到实践的全流程探索
  • vscode+react+ESLint解决不引入组件,vscode不会报错的问题
  • 【设计模式】策略模式 在java中的应用
  • 魂斗罗ost 游戏全合集8GB
  • 应急推进器和辅助推进器诊断函数封装
  • Python爬虫实战:研究Ghost.py相关技术
  • RK3588/RK3576/RK3562、T113/T527 MIPI CSI调试思路
  • Windows防火墙指南大全:安全红线与科学替代方案
  • MongoDB:索引
  • 解锁n8n:开启工作流自动化的无限可能(5/6)
  • 一个免费的视频、音频、文本、图片多媒体处理工具
  • 16_设备树中的remote-endpoint演示基于视频字符设备Linux内核模块
  • 集群聊天服务器---muduo库的使用
  • 鲲鹏服务器创建Zookeeper镜像实例
  • 网络安全智能体:重塑重大赛事安全保障新范式
  • 《Go小技巧易错点100例》第三十六篇
  • TDengine 3.3.5.0 新功能——服务端查询内存管控
  • 【RocketMQ 生产者和消费者】- 消费者的订阅关系一致性
  • 【分布式技术】Bearer Token以及MAC Token深入理解
  • 《HTTP权威指南》 第7章 缓存
  • 算法入门——排序算法详解(C++实现)
  • ANN、CNN、RNN 深度解析
  • Java面试复习:Java基础、OOP与并发编程精要
  • Coilcraft电感上的横线是什么意思?电感有方向么?
  • 每日算法刷题Day35 6.22:leetcode枚举技巧枚举中间2道题,用时1h